红黑树 - 建设

时间:2010-04-04 01:34:24

标签: creation red-black-tree

最近,我一直在浏览搜索树,遇到了红黑树,让我感到困惑的是,在rb树中,根节点应该是黑色很好,现在我将如何判断传入节点是否为红色或黑色。

我已经阅读了维基文章但尚未找到解决方案。我可能错了,但如果有人能指导我完成确切的材料,我会很高兴。

[编辑] 例如,如果我的密钥是{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 个答案:

答案 0 :(得分:1)

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

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

我发现它们非常有用。

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

答案 1 :(得分:0)

传入节点必须为红色,因为如果您将传入节点的颜色设置为黑色,而不是所有叶子到根路径的高度,则新插入的节点将增加1,这将违反RB树属性,即每个根到叶子路径必须包含相同数量的黑色节点。如果您想要更深入地了解RB树的插入http://www.youtube.com/watch?v=6QOKk_pcv3U