gpt4 book ai didi

java - 为什么这两个节点在红黑树中不是黑色的呢?

转载 作者:行者123 更新时间:2023-11-30 09:24:35 24 4
gpt4 key购买 nike

据我了解,在红黑树中,当我插入一个新节点时,当我在向下的路上遇到一个带有 2 个红色子节点的黑色节点时,我需要翻转颜色,即将父节点设为红色及其 2 个 child 黑色(根除外)。

我在维基百科上看到了这张图片:

enter image description here

为什么 8 和 17 不是黑色的?

我还登记了 applet摘自 Lafore 的“Data Structures and Algorithms in Java”;同样的事情,这些节点变成黑色。

这个红黑树有多个版本吗?

最佳答案

实际上很有可能使这些节点变黑。可能有几种不同的方法来为树的节点着色,使得生成的树服从红/黑树的结构约束。例如,任何完美的二叉树都可以着色,使得所有节点都是黑色,或者可以让行在红色和黑色之间交替,等等。

在红/黑树中重新着色和旋转节点的特定规则并不是唯一可能的规则。它们只是碰巧能够正确有效地工作的那些。我们原则上可以改变它们,使树以不同的方式着色和旋转,这可能会导致具有相同节点的树的颜色或形状不同。

希望这对您有所帮助!

关于java - 为什么这两个节点在红黑树中不是黑色的呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15589734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com