AVL 树插入算法记忆技巧总结

AVL 树

在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。

AVL 树插入操作导致失衡

左旋和右旋

《AVL 树插入算法记忆技巧总结》

只记右旋,左旋找个对称来。
《AVL 树插入算法记忆技巧总结》

只要将最中间子数的父亲有 1 换为 0 ,然后 把 1 作为新的根节点就好了。右旋箭头就向右指。

旋转后发生了哪些变化?

子树 1 深度 -1 。子树 3 深度 +1 ,子树 2 深度不变。

可能失衡的种类

所有可能失衡的种类经过对称消除后只剩下了两种,只记着这两个就好了,其他的就照着对称来。
《AVL 树插入算法记忆技巧总结》

其中 1,2,3均是平衡二叉树。
若 1 比 2、3的深度大 1,这种情况成为 LL。
若 2 比 2、3 的深度大 1 ,这种情况成为 LR。
其中 LR可以通过对 1、2的父节点进行右旋来转换为 LL。所以我们只记 LL就好了 。而 LL 可以通过一次左旋来恢复平衡。

 递归

从最低层开始调整,按照上面的法则一步步调整到最高层就好了。

    原文作者:AVL树
    原文地址: https://blog.csdn.net/buyulian/article/details/77825663
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞