algorithm - 我们可以有一个没有任何红色节点的红黑树吗?

标签 algorithm tree red-black-tree

<分区>

我想知道一棵红黑树是否应该至少有一个红色节点。另外,给定一个 BST,如果我们可以将其转换为 RBT,是否有一种独特的方法可以将这棵树变成红黑树?

最佳答案

快速浏览 properties of a red-black tree表明没有任何节点必须是红色的要求。红色节点出现的唯一方式是通过属性 5:

Every simple path from a given node to any of its descendant leaves contains the same number of black nodes.

此属性也满足任何 perfect binary tree ,所以每棵只有黑色节点的完美二叉搜索树也是一棵红黑树。 (不过,我不确定教科书上的红黑树算法是否曾经产生过这些。)

Also, given a BST, if we can convert it into an RBT, is there a unique way to turn this tree into a red-black tree?

对于任意 BST 没有唯一的 RBT;总是有多个等效的 RBT,除了非常浅的树。

关于algorithm - 我们可以有一个没有任何红色节点的红黑树吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15587455/

相关文章:

algorithm - 函数组合的分而治之

python - 多少种可能的数字组合构成相同的二叉树

在 (x+1) mod 10 = 0 中查找 x 的 PHP 算法

python - 如何使用 NumPy 数组实现字典?

java - 二叉树的高度 StackOverflow 异常

algorithm - 外部排序阶段的组合复杂度

tree - 向 Dojo 树节点添加工具提示的最简单方法?

c++ - C++中树结构上的自定义迭代器

python - 如何迭代创建通用树的类属性?

python - 绘制(Cormen)红黑树插入时的奇怪结果