AVL是平衡二叉树,有两个特点
1.左右子树的高度差小于等于 1。(平衡因子绝对值不超过1)
2.其每一个子树均为平衡二叉树。
平衡的操作有两种:左旋和右旋,这两种操作也是左右对称的。
所谓右旋操作,就是把上图中的 B 节点和 C 节点进行所谓“父子交换”。在仅有这三个节点时候,是十分简单的。但是当 B 节点处存在右孩子时,事情就变得有点复杂了。我们通常的操作是:抛弃右孩子,将之和旋转后的节点 C 相连,成为节点 C 的左孩子。这样,我们就能写出对应的代码。
AVL是平衡二叉树,有两个特点
1.左右子树的高度差小于等于 1。(平衡因子绝对值不超过1)
2.其每一个子树均为平衡二叉树。
平衡的操作有两种:左旋和右旋,这两种操作也是左右对称的。
所谓右旋操作,就是把上图中的 B 节点和 C 节点进行所谓“父子交换”。在仅有这三个节点时候,是十分简单的。但是当 B 节点处存在右孩子时,事情就变得有点复杂了。我们通常的操作是:抛弃右孩子,将之和旋转后的节点 C 相连,成为节点 C 的左孩子。这样,我们就能写出对应的代码。