首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >红黑树构造

红黑树构造
EN

Stack Overflow用户
提问于 2010-04-04 09:34:24
回答 2查看 1.8K关注 0票数 1

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

我已经看过了维基文章,但还没有找到解决这个问题的方法。我可能是错的,但如果有人能指导我通过确切的材料,我会很高兴。

编辑,例如,如果我的密钥是{7,2,4,1,9,10,8}

这里7是root,它呈现黑色,但是2呈现什么颜色呢?我们该如何决定呢?我们如何决定其他节点的颜色呢?

代码语言:javascript
复制
                                  7 - (Black)
                   2                              9
           1                   4        8                    10
        NIL   NIL          NIL  NIL   NIL  NIL            NIL  NIL

我们是否有一个随机的抛出决定节点的颜色是红色还是黑色。或者是其他的一些过程。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-04 09:41:06

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

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

我发现他们很有帮助。

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

票数 1
EN

Stack Overflow用户

发布于 2014-10-08 21:08:12

传入节点必须被涂成红色,因为如果您将传入节点着色为黑色,则新插入节点的所有叶到根路径的高度将增加1,这将违反RB树的属性,即每个根到叶路径必须包含相等数量的黑色nodes.Refer这如果您想要更深入地插入RB树http://www.youtube.com/watch?v=6QOKk_pcv3U

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2573261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档