博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT A1066
阅读量:5813 次
发布时间:2019-06-18

本文共 1593 字,大约阅读时间需要 5 分钟。

clipboard.png

平衡二叉树AVL,写过总结,这里不再赘述;

#include
#include
#include
#include
#include
#include
using namespace std;using std::vector;using std::queue;const int maxn=30;int data[maxn];struct node{ int data; int height; node* lchild; node* rchild;};node* root;node* newNode(int x){ node* root=new node; root->data=x; root->height=1; root->lchild=NULL; root->rchild=NULL; return root;}int getHeight(node* root){ if(root==NULL) return 0; return root->height;}void updateHeight(node* root){ root->height=max(getHeight(root->lchild),getHeight(root->rchild))+1;}void L(node* &root){ node* temp=root->rchild; root->rchild=temp->lchild; temp->lchild=root; updateHeight(root); updateHeight(temp); root=temp;}void R(node* &root){ node* temp=root->lchild; root->lchild=temp->rchild; temp->rchild=root; updateHeight(root); updateHeight(temp); root=temp;}int getBalanceFactor(node* root){ return getHeight(root->lchild)-getHeight(root->rchild);}void insert_node(node* &root,int v){ if(root==NULL){ root=newNode(v); return; } if(v
data){ insert_node(root->lchild,v); updateHeight(root); if(getBalanceFactor(root)==2){ if(getBalanceFactor(root->lchild)==1){ R(root); }else if(getBalanceFactor(root->lchild)==-1){ L(root->lchild); R(root); } } }else{ insert_node(root->rchild,v); updateHeight(root); if(getBalanceFactor(root)==-2){ if(getBalanceFactor(root->rchild)==-1){ L(root); }else if(getBalanceFactor(root->rchild)==1){ R(root->rchild); L(root); } } }}node* create(int data[],int n){ node* root=NULL; for(int i=0;i
data); system("pause"); return 0;}

转载地址:http://vstbx.baihongyu.com/

你可能感兴趣的文章
使用Openfiler搭建ISCSI网络存储
查看>>
iOS - UIViewController
查看>>
IntPtr 转 string
查看>>
学生名单
查看>>
(转) 多模态机器翻译
查看>>
【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档
查看>>
矩阵常用归一化
查看>>
Oracle常用函数总结
查看>>
【聚能聊有奖话题】Boring隧道掘进机完成首段挖掘,离未来交通还有多远?
查看>>
USNews大学排名遭美国计算机研究学会怒怼,指排名荒谬要求撤回
查看>>
struts1——静态ActionForm与动态ActionForm
查看>>
七大关键数据 移动安全迎来历史转折点
查看>>
在AngularJS中学习javascript的new function意义及this作用域的生成过程
查看>>
盘点物联网网关现有联网技术及应用场景
查看>>
1、下载安装scala编译器(可以理解为scala的jdk),地址:http://www.scala
查看>>
mui 总结2--新建第一个app项目
查看>>
nginx的lua api
查看>>
考研太苦逼没坚持下来!看苑老师视频有点上头
查看>>
HCNA——RIP的路由汇总
查看>>
zabbix监控php状态(四)
查看>>