在高效的检索方法中,
二分检索法具有最高的查找效率,但是它只适合于顺序存储结构,这样对于数据的操作和删除操作带来不便。
二叉排序树不仅有二分检索的效率,同时保持数据的动态性。但是当二叉排序树只有左子树或者右子树,二叉排序树就退化成了单链表,具有较低的检索效率。
平衡二叉树就可以解决这种问题。平衡二叉树又称为AVL树,它或是一颗空树,或是具有以下性质的二叉树:
它的左右子树都是平衡二叉树,且左子树和右子树的高度之差绝对值不超过1。
平衡二叉树的调整
插入时通过对二叉树的调整可以保持这棵树为平衡二叉树。只有这么四种情况:
RR旋转(右单旋)
如下图,在BR插入一个元素,导致A不平衡了
调整后:
LL旋转(左单旋)
如下图,在BL插入一个元素,导致A不平衡了