【发布时间】:2013-02-09 16:51:50
【问题描述】:
我正在阅读关于 Red-Black Trees 的 wiki。
谁能详细说明第五条限制:
节点不是红色就是黑色。
根是黑色的。
所有叶子 (NIL) 都是黑色的。 (所有的叶子都和根的颜色一样。)
每个红色节点的两个孩子都是黑色的。
从给定节点到其任何后代叶子的每条简单路径都包含相同数量的黑色节点。
鉴于the final case of insertion(wiki 上的案例 5)之后示例 RBT 的状态,我很难理解它:
4 和 5 不是比 1,2 和 3 多一个黑色节点吗?
【问题讨论】:
-
不,因为 1、2 和 3 是黑色节点,而 4 和 5 不是,所以这五个路径都有两个黑色节点。
-
当然看起来是这样,不是吗。现在你让我想知道维基是否是错误的。 wiki会出错吗?这动摇了我对世界坚固性的信心!
-
是的,Wiki 是错误的
U从一开始就应该是红色的。所以最后也是红色的。 -
*文章的图片具有误导性 w.r.t.属性 5 和着色。
-
是的,实际上,忽略了
tree在旋转之前和之后的颜色,它只是镜像了完全相同的结构,所以旋转它不会产生降神作用......