平衡二叉树(Balanced Binary Tree)
平衡二叉树是由一般的二叉排序树经过平衡调整得到的,每个结点的左右子树深度差小于等于1的特殊的二叉排序树。
已经提到,二叉排序树的平均查找长度与它的形态有关,其中平衡二叉树就是一种最好的形态。
特征:
1)左右子树深度差的绝对值小于等于1;
2)左右子树也是平衡二叉树。(递归)
为了表示左右子树的深度差,我们给每个结点增加一个属性——平衡因子(Balance Factor),记录每个结点左右子树的深度差,结点值 = 左子树深度 - 右子树深度。只要有一个结点的平衡因子的绝对值大于1,这棵二叉排序树就是不平衡的。
当平衡的二叉排序树因插入结点而失去平衡时,仅需对最小不平衡子树进行平衡调整即可,即