代码之家  ›  专栏  ›  技术社区  ›  Chaitanya

红黑树-建筑

  •  1
  • Chaitanya  · 技术社区  · 14 年前

    最近,我一直在搜索树,我遇到了红黑树,让我困惑的是,在R-B树中,根节点应该是黑色的,这很好,现在我如何决定传入节点是红色的还是黑色的。

    我浏览过维基的文章,但没有找到解决这个问题的方法。我可能错了,但如果有人能指导我了解确切的资料,我会很高兴的。

    [编辑] 例如,如果我的键是7、2、4、1、9、10、8

    这里7是根,它假定为黑色,但是2假定为什么颜色?我们怎么决定?我们如何决定其他节点的颜色呢?

                                      7 - (Black)
                       2                              9
               1                   4        8                    10
            NIL   NIL          NIL  NIL   NIL  NIL            NIL  NIL
    

    我们是否有一个随机的折页,决定了节点的颜色是红色或黑色。或者是其他的过程。

    谢谢您。

    2 回复  |  直到 10 年前
        1
  •  1
  •   Gab Royer    14 年前

    看看麻省理工学院开放课件上关于红黑树的讲座。

    http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/VideoLectures/

    我发现它们非常有用。

    现在,如果我没记错,您总是将新节点插入为黑色节点,然后继续进行必要的更正(重新绘制和/或旋转)

        2
  •  0
  •   अज्ञ    10 年前

    传入节点必须为红色,因为如果将传入节点的颜色设置为黑色,则新插入节点的所有叶到根路径的高度将增加一个,这将违反RB Tree属性,即每个根到叶路径必须包含相等数量的黑色节点。如果希望在插入RB Tree时了解更多信息,请参阅此选项。 http://www.youtube.com/watch?v=6QOKk_pcv3U

    推荐文章