平衡二叉树的四种情况:
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) |