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

AVL 树

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

AVL 树插入操作导致失衡

左旋和右旋

这里写图片描述

只记右旋,左旋找个对称来。
这里写图片描述

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

旋转后发生了哪些变化?

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

可能失衡的种类

所有可能失衡的种类经过对称消除后只剩下了两种,只记着这两个就好了,其他的就照着对称来。
图片不见了

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

 递归

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值