- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Red-Black Tree的特点及性质 - Read
Red-Black Tree ------红黑树的数据结构实现 计算机学院6班 施展雄 1060310631 Red-Black Tree简介 红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为对称二叉B树,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。 Red-Black Tree背景及术语 ?红黑树是一种特定类型的二叉树,它是在计算机科学中用来组织数据比如数字的块的一种结构。所有数据块都存储在节点中。这些节点中的某一个节点总是担当启始位置的功能,它不是任何节点的儿子;我们称之为根节点或根。它有最多两个儿子,都是它连接到的其他节点。所有这些儿子都可以有自己的儿子,以此类推。这样根节点就有了把它连接到在树中任何其他节点的路径。 如果一个节点没有儿子,我们称之为叶子节点,因为在直觉上它是在树的边缘上。子树是从特定节点可以延伸到的树的某一部分,其自身被当作一个树。在红黑树中,叶子被假定为 null 或空。? ?? ???由于红黑树也是二叉查找树,它们当中每一个节点都的比较值都必须大于或等于在它的左子树中的所有节点,并且小于或等于在它的右子树中的所有节点。这确保红黑树运作时能够快速的在树中查找给定的值。 Red-Black Tree的特点及性质 1. 每一个结点或者是红色或者是黑色。 2. 每个叶结点都是黑色。 3. 如果一个结点是红色,那么它的两个孩子结点都是黑色。 4. 从任何一个结点到所有以该结点为子树的叶结点的简单路径上拥有相同的黑色结点。 Red-Black Tree的示意图 课程设计要求 ① 设计并实现Red-Black Tree的ADT,该ADT包括Tree的组织存储以及其上的基本操作:包括初始化,查找,插入和删除等。并分析基本操作的时间复杂性。 ② 实现Red-Black Tree ADT的基本操作演示 ③ 演示实例为依次插入A L G O R I T H M并依同样的次序删除。 Red-Black Tree 实现原理说明: 对于Red-Black Tree的查找和初始化是比较容易实现的,与一般的二元查找树类似。但若要对其进行插入及删除操作则有一定难度。因为Red-Black Tree具有特殊的性质,若要保持它的性质及平衡,我们则必须对树进行旋转。 Red-Black Tree 下面就简单介绍一下对Red-Black Tree的插入和删除操作方法 1.删除时如果该节点有两个子树,先要将该的数据与它的左子树中数据最大的节点A的数据交换(颜色不交换),然后删除A。也可以是和右子树中最小节点交换。被删除的节点如果是红色则完成,如果是黑色则需要调整。调整可能导致向上传递(黑色)也可能导致旋转。旋转后就能完成平衡。不发生旋转而一直向上传递到根的话将导致高度减一。 ? Red-Bl Red-Black Tree ack Tree 插入时插入一个红色节点。如果它的父是黑色则完成,如果是红色需要调整,可能导致向上传递(红色)也可能导致旋转。旋转最多两次后即可完成平衡。不发生旋转而一直向上传递到根的话将根直接置为黑色,这时将导致高度加一。 Red-Black Tree 下面是我程序的执行结果 (附图) 其中包括: 1.初始化一棵RBTree 2.插入要求的几个节点 3.查找节点 4.删除节点 5.再次查找被删除的节点,验证其已被删除 Red-Black Tree的用途和好处 ?红黑树和AVL树一样都对插入时间、删除时间和查找时间提供了最好可能的最坏情况担保。这不只是使它们在时间敏感的应用如即时应用(real time application)中有价值,而且使它们有在提供最坏情况担保的其他数据结构中作为建造板块的价值;例如,在计算几何中使用的很多数据结构都可以基于红黑树。 Red-Black Tree与AVL对比 跟AVL相比RBTree的优势在于: 每个节点只需要一个bit的用于平衡的额外空间,而AVL需要记录高度。 每次作Fixup的时候,RBTree的Rotate次数是O(1)的,而AVL是O(lgN)的。 虽然RBTree作Fixup时Recolor的操作是O(lgN)的,但是其均摊复杂度确是O(1)的!这个意味着,N个插入删除操作的代价是O(N)的。 * * * *
您可能关注的文档
- 1、采矿权评估报告 - 北票市国土资源局.DOC
- 101交通安全篇.PPT
- 10 2005年1月26日云南省思茅50级地震灾害损失 - 中国地震信息网.PDF
- 1陕北风沙滩地区包气带抗污能力试验研究 - 国核电力规划设计研究院.PDF
- 1生态因子分类及其基本作用规律.PPT
- 1963年,冰岛以南的大西洋中,一艘渔船在海面作业,人们突然看到 .PPT
- 2 建设项目周围环境现状 - 盐边.DOC
- 1:2水泥砂浆.PPT
- 2 指标的选取和数据的说明.DOC
- 1认识地震.PPT
- s +r 星单辐照模型与对流模型参数的对比研究 - 河北师范大学学报.PDF
- PDF - 矿床地质.PDF
- RS自动化控制器件板块 - RS Components International.PDF
- POP歌谱架 - 瑞安广告公司.PPT
- TM2 302409 2786601 台北市鞍部气象站(TAP066) SPT-N S-Wave .PDF
- Topic_02_地貌的改变.PDF
- Topic_05_板块运动.PDF
- Trace element emissions from coal 煤炭排放的微量元素.PDF
- Q345 中厚板V 形折弯应力应变分析 - 精密成形工程.PDF
- Yak山岳生活馆.DOC
文档评论(0)