假设你有一棵红黑树,它是一个有效的二叉搜索树并且不违反任何这些规则:
- 一个节点要么是红色的,要么是黑色的。
- 根是黑色的。
- 所有叶子 (NIL) 都是黑色的。
- 每个红色节点的两个孩子都是黑色的。
- 从给定节点到其任何后代叶子的每条简单路径都包含相同数量的黑色节点。
这样一棵红黑树看起来像这样:
满足这些限制的每棵可能的树是否都有插入和删除的序列,从而生成红黑树?
我问这个问题是因为我想写一篇关于红黑树的博客文章,我想举一些例子。
如果你想测试一个反例:这是一个在 python 中实现的红黑树,其中实现了生成图像的函数。
澄清问题:我们制作游戏。
- 我画了一棵符合所有限制的红黑树。
- 你必须找到插入和删除的序列,这样你才能得到我的红黑树。
我可以画一棵红黑树,让你赢不了吗?
颜色很重要!如果树有不同的形状或不同的颜色,它就不是同一棵红黑树。
您至少应该知道如何生成这两个红黑树:
请注意,这只是对您的检查,如果它可以工作。如果你只知道如何得到这两个红黑树,你是无法回答这个问题的!