AVL树又称高度平衡的二叉搜索树,它有如下几个性质:
1.左子树与右子树的高度差绝对值不超过1;
2.树中每个节点的左右子树都是AVL树;
3.每个节点都有一个平衡因子(balance factor)这里简称bf,AVL树中每个节点的平衡因子都为1,0,-1(每个节点的平衡因子等于该节点右子树的高度减去其左子树的高度)。
假设一棵AVL树有N个节点,其高度保持在log2N,插入删除查找算法的时间复杂度也是log2N(这里的log2N是指log以2为底的N的对数)。
了解完上面这些我们来探讨一下AVL树的左右单旋与双旋。
首先我在这里给出一个粗略画出的AVL树,并在每个节点的右端标出它的平衡因子,就目前看来,这棵树是满足AVL树的所有性质的。