【发布时间】:2012-07-23 17:25:22
【问题描述】:
假设您有一个red-black tree,它是一个有效的binary search tree,并且不违反任何这些规则:
- 节点不是红色就是黑色。
- 根是黑色的。
- 所有叶子 (NIL) 都是黑色的。
- 每个红色节点的两个子节点都是黑色的。
- 从给定节点到其任何后代叶子的每条简单路径都包含相同数量的黑色节点。
这样一棵红黑树是这样的:
是否所有满足这些限制的可能树都有插入和删除的序列,从而生成红黑树?
我问这个问题,因为我想写一篇关于红黑树的博客文章,我想举一些例子。
如果你想测试一个反例: 这里是a red-black tree implementation in python,带有一个生成图像的实现函数。
澄清问题:我们制作游戏。
- 我画了一棵符合所有限制的红黑树。
- 你必须找到插入和删除的序列,这样你才能得到我的红黑树。
我可以画一棵红黑树,这样你就赢不了了吗?
颜色很重要!如果树有不同的形状或不同的颜色,它就不是同一棵红黑树。
你至少应该知道如何生成这两个红黑树:
请注意,这只是对您是否可行的检查。如果你只知道如何得到这两个红黑树,你是无法回答这个问题的!
【问题讨论】:
-
我试图抹去我关于图论的计算机科学知识,但当我接触到它时,整个事情就崩溃了……开玩笑的,你可能想把这个发帖到cstheory.stackexchange.com 以获得更多信息适当的关注。
标签: red-black-tree