思考平衡树调整问题

本文详细探讨了平衡树中RL型调整的策略,通过举例说明如何进行右旋后再左旋的操作,重点解析了调整过程对节点关系的影响,帮助读者深入理解平衡树的维护机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思考平衡树调整问题

@(算法学习)

在这篇文章中讲到了如何根据型号记忆旋转的方向。但是还不够深入具体。

http://blog.csdn.net/u011240016/article/details/52877474?locationNum=1&fps=1

现在挑其中一种RL型举例说明,如何先R再L,对什么结点进行旋转。

最简单的RL型是最让人难受的一种运用场景。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CMucbdKC-1571673289312)(./屏幕快照 2016-11-22 下午11.50.45.png)]

如何旋转?

A是最小不平衡子树的根结点,首先需要右旋的是A的右子树,即B、C。再对整个不平衡子树向左调整。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9ykcSE5G-1571673289314)(./屏幕快照 2016-11-22 下午11.54.55.png)]

需要清楚的是RL是相对于什么的RL。

答案是:相对于最小不平衡子树的根而言。插在了这个最小不平衡子树的右子树的左子树上。

即:

这里写图片描述

数字表示平衡因子。

注意到C是最小不平衡子树的右子树的左子树的根结点,先调整的就是它和它的父结点的相对位置。

这里写图片描述

再进行左旋。

这里写图片描述

有意思的是,看C最后成为根结点,但是它的两个孩子两次旋转否分别交给了它打压下去的根结点。一个是B,一个是A。这就是它成为老大的代价。

2019.10 Update:

第一届PAT算法直播课培训班招募帖,欢迎点击查看详情、

END.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值