博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

AVL树

Posted on 2009-11-13 21:30  little健健  阅读(338)  评论(0编辑  收藏  举报

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.