平衡树(AVL) – 树上任一结点的左子树和右子树高度相差不超过1
结点平衡因子 = 左子树高-右子树高
插入操作:
插入操作可能会让路径上所有的结点都收到影响
如果发生不平衡,从插入点往回,找到第一个不平衡结点,调节以该结点为根的子树
每次调整的对象都是“最小不平衡子树”
①调整LL子树
-
LL(右旋)
最小平衡树的左孩子B右旋代替根节点A成为结点
根节点A右下旋代替B的右孩子,然后B的原右孩子成为A的左孩子
-
RR(左旋)
B代替A,将B的左孩子当场A的右孩子
-
LR(左旋再右旋)
-
RL(右旋再左旋)
查找效率ASL : O(log2n)