algorithm - 解释为什么插入(以及不同的情况)不会改变红黑树的黑色高度
问题描述
为什么节点γ(gamma,最顶层节点)的黑色高度在操作后没有变化?
我知道如何解释为什么 T1 - T4 的黑色高度在操作后是相同的。但对于伽玛,我完全不知道。
有人有想法吗?
解决方案
好的,Alpha 的插入完成,它被编码为红色。现在插入后,RB 树插入代码将检查红色和黑色之间的不平衡,以确定是否必须进行旋转。检查后 Beta 节点变为黑色,Y 节点变为红色,gamma 节点变为黑色,从而保持树 RB 平衡,无需旋转。
https://en.wikipedia.org/wiki/Red%E2%80%93black_tree
请参阅上面的 wiki 链接以获取有关颜色切换如何发生以及它为什么以及如何帮助确定所需旋转/秒的完整说明。
推荐阅读
- oauth-2.0 - How to disable device flow and implicit flow in identity server?
- scala - 在 Scala 中将 Map[String, String]() 附加到具有 [String] 类型的数组或列表中
- javascript - 使用 Cytoscape.js API 对有向树边缘进行分类的最简单方法是什么?
- python - python如何评估A
我看到的代码是这样的。
def min(x,y,z): if z<=x<=y: return z elif x<=y and x<z: return x elif y<=z and y<=x: return y
他们问以下是否
z<=x<=y
- r - Delete last row Data Table
- adobe-xd - 如何通过在 adobe XD 中滚动将下拉菜单修复为固定位置?
- multithreading - Is it better to use a thread or coroutine in Kotlin?
- laravel - How to Apply IF Where Condition in Laravel Collation
- c# - 从控制台中的特定坐标抓取文本
- yii2 - 使用带有 onchange 事件的创建表单更新表单