平衡二叉树/平衡树:任意结点的左右子树高度差的绝对值不超过1
平衡因子:结点左子树与右子树的高度差,平衡二叉树的平衡因子的值只可能是-1,0,1
1.平衡二叉树的插入
(1)LL型:右旋
在结点A的左孩子(L)的左子树(L)上插入了新结点,导致以A为根的树失去平衡
找到A,右旋,并满足二次排序树的特性
(A是从下至上第一个平衡因子异常(子树不平衡)的结点)
(2)RR型:左旋
由于在结点A的右孩子(R)的右子树(R)上插入了新结点,导致以A为根的子树失去平衡
(3)LR型:左右旋
由于在A的左孩子(L)的右子树(R)上插入新结点,导致以A为根的子树失去平衡
左右旋
(4)RL型:右左旋
由于在A的右孩子(R)的左子树(L)上插入新结点,导致以A为根的子树失去平衡
2.效率分析
设nh表示深度为h的平衡树中含有的最少结点数
显然n0=0
n1=1
n2=2
n3=4
n4=7
故nh=nh-1+nh-2+1
含有n个结点的平衡二叉树的最大深度O(log2n)
(记住即可)
因此平衡二叉树的平均查找长度为O(log2n)