二叉搜索树已经足够完美了吗?
比如 插入1、2、3、4、5、6、7、8;形成的二叉搜索树如下:
性质
平衡二叉树又被称为AVL树,它具有以下性质:它是一棵空树或它的左右子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树;
相关概念:
- 平衡因子:左右子树高度差的绝对值;
- 最低不平衡节点:用A表示最低不平衡节点,则A的祖先节点可能有不平衡的, 但是其所有后代节点都是平衡的;
- 失去平衡的最小子树:距离插入节点最近且平衡因子绝对值大于1的节点 作为根的子树;
不平衡的四种情形
1、对A的左儿子的左子树进行一次插入 ,称为LL型
2、对A的左儿子的右子树进行一次插入,称为LR型
3、对A的右儿子的右子树进行一次插入,称为RR型
4、对A的右儿子的左子树进行一次插入,称为RL型
平衡调整的实现方法
- 单旋:右旋(LL型)、左旋(RR型)
- 双旋:左右旋(LR型)、右左旋(RL型)