Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17375
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 22
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-01 17:59
个人简介

天下没有笨人,只有不努力的人!

文章分类

全部博文(17)

文章存档

2013年(17)

我的朋友

分类: C/C++

2013-09-01 18:16:33

原文地址:平衡二叉树 作者:遇见0425

平衡二叉树的四种情况:
1:LL型
               不平横,转变为                                
假设失衡节点A,在节点A的左子树的左子树插入新节点S,导致失衡,则可以有
B=A->left;
A->lchild=B->right;      B->right=A; 

如图:                         
2:RR型 
   不平衡,转变为            
RR型的与LL型对称,则不画图了,直接上代码
B=A->right;
A->right=B->left;        B->left=A;

3:LR型:
不平衡,转变为            

假设最底层失衡节点为A,在节点A的左子树的右子树插入新节点S导致失衡,如下图,则有算法:
B=A->left;    C=b->right;
B->right=C->left;
A->left=C->right;
C->left=B;
C->right=A;
如图:
    转变为   
4:RL型:
不平横,转变为
就不上图举例子,实质是一样的。
B=A->right;          C =B->left;
A->right=C->left;          B->left=C->right;
C->left=A;         C->right=B;


整体代码还写对。。。过几天补充。
阅读(215) | 评论(0) | 转发(0) |
0

上一篇:最近笔试总结二

下一篇:关于二叉查找树

给主人留下些什么吧!~~