AVLTree深度剖析(双旋)

文章探讨了AVL树中的旋转操作,包括左单旋、右单旋以及在不同情况下的平衡因子更新。无论插入导致的高度变化如何,旋转过程保持一致,但平衡因子的更新需依据具体情况。文章提到了右左单旋的三种情况,但未详细展开。
摘要由CSDN通过智能技术生成

在上一篇文章中我们提到了,单旋的情况(无论是左单旋还是右单旋),都仅仅适用于绝对的左边高或者绝对的右边高

b插入,高度变为h+1,我们可以来试试单旋会变成什么样子

 旋完之后,形成了对称关系,我们右单旋之后,在用一次左单旋,发现又回去了!!

左右双旋解决

 我们先对30这个节点进行一个左单旋

 我们这时候在对90进行一个右单旋

我们还有可能是在c插入的,但是还是一样的旋转过程,无非就是平衡因子的更新不同

 还有一种极端情况  h==0的情况   但是旋转的过程都是不变的

 平衡因子都是0

 -------------------------------------------------------------------------------------------------------------------------

我们在这里的三种情况下,旋转的过程都是一样的,但是最后平衡因子的更新却是不同的,所以我们需要知道如何去区分是那种情况,好进行对应的平衡因子更新

 

 ----------------------------------------------------------------------------------------------------------------------------

右左单旋

情况一:

情况二:

 

 情况三:

 这里就不做多解释了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值