【问题标题】:Red Black Tree question红黑树问题
【发布时间】:2011-08-03 11:55:48
【问题描述】:

红黑树中的一个节点可以有一个红色和一个黑色的孩子吗?

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

                   B
           R               B
       B       B       R       R 
     R   R       R

【问题讨论】:

    标签: algorithm tree red-black-tree


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的快速回复。我在测试我的数据结构时遇到了这个问题,并想确认这是可能的。
      猜你喜欢
      • 2016-07-15
      • 2011-08-06
      • 2013-10-27
      • 2013-06-12
      • 2011-01-19
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2012-12-01
      相关资源
      最近更新 更多