网站大量收购独家精品文档,联系QQ:2885784924

红黑树原理详解整理.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
红黑树原理详解 Copyright (C) 2009 log 』 红黑树原理详解 用于《C 语言常用数据结构源代码全注解-红黑树源码》 作 者:余 强 日 期: 2009-12-4 版 本: V1.0 协 议: GFDL 博 客: 有水的地方就有余 院 校: CQU 组 织:工程信息化 (嵌入式 )实验室 联 系 我: yuembed@126.com 前言: 之所以要写这篇文章,第一个目的是为了各位朋友在查看我写的源代码之前有一个可以 理解理论的文章,因为红黑树还是有点难的,如果不想搞懂理论,而直接看代码,那绝对是 云里雾里,不知所云。第二个目的是我觉得网上虽然后不少我文章也在讲,但是我就是理解 不上有点困难,在我参考了很多文章之后,认真阅读才慢慢摸透了其中的原理,所以我想用 日期: 2009-12-4 红黑树原理详解 Copyright (C) 2009 log 』 自己的方式来表达,希望有助于各位的朋友理解。 你可以在 这里 下载配套源代码 红黑树由来: 它是在 1972 年由 Rudolf Bayer 发明的,他称之为 对称二叉 B 树 ,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于 1978 年写的一篇论文中获得的。它是复杂的,但它的操作 有着良好的最坏情况运行时间, 并且在实践中是高效的 : 它可以在 O(log n)时间内做查找, 插 入和删除,这里的 n 是树中元素的数目。 红黑树性质 : 1. 每个结点或红或黑。 2. 根结点为黑色。 3. 每个叶结点 (实际上就是 NULL 指针 ) 都是黑色的。 4. 如果一个结点是红色的 ,那么它的周边 3 个节点都是黑色的。 5. 对于每个结点 ,从该结点到其所有子孙叶结点的路径中所包含的黑色结点个数都一样。 讨论的前提: 1,我们只讨论往树的左边和从树的左边删除的情况,与之对称的情况一样。 2,假设我们要删除一个元素的方法都是采取删除后继节点,而非前驱节点。 3,NL 或全黑表示黑空节点,也可以不用画出。 4, “=这个符号我们用来表示” 变成“ ”的意思。 一. 插入 当红黑树中没有节点的时候,新节点直接涂黑就可以了。 当树中已有节点,我们就将新节点涂红,并且底下挂两个黑空节点。 新 新 NL NL 1.1 新节点的父亲为黑色 这种情况最简单,只接插入将新节点可以了,不会出现红色警戒。 1.2 新节点的父亲为红色 这种情况出现红色警戒, 并且通过红色的父亲, 我们可以推出一定有一个黑色的父 , 并且父亲不可能为树根 (树根必须为黑 ) 。 日期: 2009-12-4 红黑树原理详解 Copyright (C) 2009 log 』 这种情况需要修复。 1.2.1 新节点的叔叔是红色。 (红叔) 图 1.2.1-1 图 1.2.1-2 注解:在这种情况下,我们可以通过这样的方式来修复红黑树的性质。因为遇到红 色警戒所以我们首先可以想到的就是将父亲变成黑色,但这样祖父的左子树的黑

您可能关注的文档

文档评论(0)

旺咖 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档