红黑树问题

时间:2011-04-12 00:25:12

标签: algorithm tree red-black-tree

红黑树中的节点是否有一个红色和一个黑色的孩子?

我有以下树,我在这里只指定了颜色。叶子节点被忽略。

                   B
           R               B
       B       B       R       R 
     R   R       R

2 个答案:

答案 0 :(得分:1)

是的,节点可以有不同颜色的孩子。例如,参见R-B树上the MathWorld article最顶部的图表;您可以验证它是否满足R-B树的所有要求,并且其中一个节点具有不同颜色的子节点。至于那个问题,你给出的例子是什么。

答案 1 :(得分:1)

这是一篇关于在Haskell中学习数据结构的上下文中的读取黑树的好文章。

http://scientopia.org/blogs/goodmath/2009/11/30/advanced-haskell-data-structures-red-black-trees/

它给出的R-B树标准非常清楚。红色节点的子节点必须为黑色,但未指定黑节点的子节点。重要的是,从给定节点到其下面的叶子的所有路径必须具有相同数量的黑色节点。看着你的树,从根向下的每条路径都有1个黑色节点(如果算上根则为2),所以没关系。