AVL树

Posted zzqboy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AVL树相关的知识,希望对你有一定的参考价值。

1.介绍

AVL树是带有平衡条件的二叉查找树,而且必须保证树的深度是O(logN).

这个平衡条件很多,最常见的是左子树和右子树的高度相差不超过1,可以证明,一颗AVL树的高度最多为1.44log(N+2)-1.328。

技术分享图片

因此,除了插入的操作以外,所有的树操作都以O(logN)执行,因为当进行插入的时候可能需要进行额外的平衡操作。把必须平衡的点计为a,那么这种操作可能是下面的一种:

a.对a的左儿子的左子树进行一次插入

b.对a的左儿子的右子树进行一次插入

c.对a的右儿子的左子树进行一次插入

d.对a的右儿子的右子树进行一次插入

对于a和d,用单旋转就可以,而中间两种需要用到双旋转

2.单旋转

 

以上是关于AVL树的主要内容,如果未能解决你的问题,请参考以下文章

AVL树介绍与实现

AVL树介绍与实现

C++AVL树(四种旋转方式)

C++AVL树(四种旋转方式)

C++AVL树(四种旋转方式)

探索 AVL 树基础原理