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.单旋转