Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1744491
  • 博文数量: 1493
  • 博客积分: 38
  • 博客等级: 民兵
  • 技术积分: 5834
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-19 17:28
文章分类

全部博文(1493)

文章存档

2016年(11)

2015年(38)

2014年(137)

2013年(253)

2012年(1054)

2011年(1)

分类:

2012-09-05 08:35:55

原文地址:平衡二叉树 作者:遇见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;


整体代码还写对。。。过几天补充。
阅读(258) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~