定义:平衡二叉树是一棵二叉排序树,或者为空,或者满足以下条件:
(1)左右子树高度差的绝对值不大于1;
(2)左右子树都是平衡二叉树。
平衡因子:对于二叉树中任一结点T,其平衡因子(Balance Factor,简称 BF)定义为BF(T) = hL-hR,其中hL和hR分别为T的左、右子树的高度。
平衡化旋转:如果在一棵 AVL 树中插入一个新结点后造成失衡,则必须重新调整树的结构,使之恢复平衡。我们称此调整平衡的过程为平衡旋转。
平衡化旋转的类别
- LL型:新插入结点在A的左孩子(L)的左子树(L)中;
- LR型:新插入结点在A的左孩子(L)的右子树(R)中;
- RL型:新插入结点在A的右孩子(R)的左子树(L)中;
- RR型:新插入结点在A的右孩子(R)的右子树(R)中。
构造平衡二叉树(AVL)
例题1:输入关键字序列为 { 16, 3, 7, 11, 9, 26, 18, 14, 15 },构成一棵平衡二叉排序树。
①插入16 ②插入3 ③插入7 -----> LR双旋
④插入11 ⑤插入9 --------> LL单旋
⑥插入26 --------> RR单旋
⑦插入18 --------> RL双旋
⑧插入14 ⑨插入15 --------> LR双旋
例题2:给出如下平衡树,平衡二叉树中删除结点22,展示输出后的结果。
答案: