1.AVL树是带有平衡条件的二叉查找树。
2.空子树高度定义为-1
3.一棵AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树
4.一棵AVL树的高度最多为1.44log(N+2)-1.328
5.AVL树高度为h,S(h)(最小节点数)=S(h-1)+S(h-2)+1
h=0,S(h)=1;h=1,S(h)=2;
6.重新平衡的节点叫做A(从叶节点开始往上一层层看)
7.操作
8.插入(O(log N))
(1)A的左儿子的左子树进行插入 一次右旋转
(2)A的右儿子的右子树进行插入 一次左旋转
(3)A的左儿子的右子树进行插入 先对左儿子的右子树进行左旋转,再将左儿子进行右旋转
(4)A的右儿子的左子树进行插入 先对右儿子的左子树进行左旋转,再将右儿子进行右旋转
9.删除 (O(log N))
从AVL树中删除可以通过把要删除的节点向下旋转成一个叶子节点,接着直接剪除这个叶子节点来完成
习题一个:
Show the result of inserting 2, 1, 4, 5, 9, 3, 6, 7 into an initially empty AVL tree.