左旋转、右旋转、双旋

本文解析了左左(LL)、右右(RR)、左旋右旋(LR-RR)和右旋左旋(RL-LL)在数据结构中的旋转操作,解释了它们如何解决节点失衡问题,通过代码示例和小码哥教育的实例,展示了旋转操作在调整树结构平衡中的关键作用。
摘要由CSDN通过智能技术生成

左旋转、右旋转、双旋https://www.cnblogs.com/shan333/p/15468699.html

1,LL :– 右旋转(单旋):为啥LL ,要用右旋转:LL 的意思是:左左,说明左边高度多了一个?

--------------------左边过重失衡,右旋转,把重量匀称一点到右边(图片来源小码哥教育)

2,RR: – 左旋转(单旋):为啥RR ,要用左旋转:RR 的意思是:右右,说明右边高度多了一个?

--------------------右边过重失衡,左旋转,把重量匀称一点到左边(图片来源小码哥教育)

3,LR – RR:左旋转,然后得到 LL,再右旋转(双旋):首先看LR-RR结构的最后一对是RR,

■ 为啥RR, 要用左旋转:RR 的意思是:右右,说明右边高度多了一个?

--------------------右边过重失衡,左旋转,把重量匀称一点到左边。

■ 然后得到LL,要用右旋转,LL的意思是:左左,说明左边高度多了一个?

--------------------左边过重失衡,右旋转,把重量匀称一点到右边。 (图片来源小码哥教育)

 (图片来源小码哥教育)     

4,RL – LL:右旋转,然后得到 RR,再左旋转(双旋):首先看RL-LL 结构最后一对是LL,

■ 为啥LL, 要用右旋转:LL 的意思是:左左,说明左边高度多了一个?

--------------------左边过重失衡,右旋转,把重量匀称一点到右边。

■ 然后得到RR,要用左旋转,RR的意思是:右右,说明右边高度多了一个?

--------------------右边过重失衡,左旋转,把重量匀称一点到左边。(图片来源小码哥教育)

   (图片来源小码哥教育)   

1、旋转的意义:就是为了匀称掉失衡的状态。

✿ 最后一个字母就是提示失衡的情况:

● LL: 是左边失衡~ 右旋转

● RR:是右边失衡~ 左旋转

● LR-RR: (可以看到该结构最后一对是 RR,是右边失衡)左旋转,处理后得到~LL(是左边失衡),右旋转。

● RL-LL:(可以看到该结构最后一对是 LL,是左边失衡)右旋转,处理后得到~RR(是右边失衡),左旋转。

1,LL型【右旋转】的代码:

g.left = p.right;
p.right = g;

理解:右旋g:将p的right 赋值给了g.left 。【原先模型中,g.left = p】

然后 p.right 指向了g。

【形态理解上:】【g的 左边太重了】处理:

g.left = p.right;   ● 代码意思:p 要丢给了g 最近的孩子(右孩子),然后 p 爬升了,

p.right = g;         ● 代码意思:g 拿了 p 的右孩子后下沉了,p 的右孩子变成了下层的 g

形象生动地使用现实中天平平衡的理解角度即可啦~

2,如何用代码判断是LL、RR、LR、RL 型的呢?

1,先看父节点是 左,则 L:

 ●  然后再看当前结点是左,则 LL,否则是右,则LR;

2,  若父结点是 右,则 R:

●  然后再看当前结点是左,则RL,否则是右,则RR;

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟庭大师兄

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值