- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 具体实现 步骤3的具体实现方法: 假设要插入的结点为N,其父亲结点为P,P的兄弟结点为U。考虑以下两类情况: (1)如果P是黑色的,那么整棵树已经是红黑树不需要再进行调整。 (2)如果P是红色的,那么插入N后,将与第4条性质不符,这时需要进行旋转调整。具体的调整方法又可以分为以下3种情况: * 具体实现 1)如图所示,N的叔叔U是红色(图中使用阴影表示红色),将结点P和结点U的定义为黑色并定义结点G为红色。此时,插入结点N的父亲结点P为黑色。 因为通过父结点P或结点U的任何路径都必定通过结点G,而在这些路径上黑色结点的数目没有改变。但是,结点G的父结点也可能是红色的,因此需要以结点G向上递归调整结点颜色。 * 具体实现 2)如图所示,N的叔叔U是黑色的,且N是右孩子,此时对结点?P进行一次左旋转调换, 然后按情形3)的方法处理。 * 具体实现 3)如图所示,N的叔叔U是黑色的,且N是左孩子,此时需对结点G做一次右旋转调换,使得在变换后的树中结点P是新结点N和结点G的父结点,然后调换之前的结点?P和结点G的颜色,使之满足第4和第5条性质。 * 删除操作 红黑树删除操作分为以下三个基本步骤: (1) 查找要删除结点的位置; (2) 用其后继替换该结点; (3) 若替换结点为黑色,则需重新调整树模型使其重新成为红黑树。 * 具体实现 步骤3的具体实现分四种情况分别处理: 设被删除的结点为N,其父结点为P,其兄弟结点为S。由于结点N是黑色的,则结点?P和S都有可能是黑色或红色。 * 具体实现 (1)结点S是红色的。此时结点P肯定是黑色。对结点N的父结点P做左旋转,然后把红色兄弟结点转换成结点N的祖父。接着转换结点N的父亲和祖父的颜色。 接下去按第二、第三或第四种情况来处理,如图所示。 * 具体实现 (2) 结点S及其的孩子全是黑色的。这种情况下,结点P可能是黑色也可能是红色的。此时,首先把结点S赋值为红色。然后要调整以P作为N递归调整树,如图所示。 * 具体实现 (3)S是黑色的,S的左孩子是红色,右孩子是黑色。这种情况下,对结点S做右旋转,这样S的左孩子就成为S的父亲和N的新兄弟。这样就将问题转化到第四种情况。此时N和它的父结点都不受这个变换的影响,如图所示。 * 具体实现 (4)S是黑色的,S的右孩子是红色。这种情况下,对?N的父结点做左旋转,这样S成为N的父结点和S右儿子父结点。接着交换N的父结点和S的颜色,并使S的右儿子为黑色。此时,N增加了一个黑色祖先: 要么N的父结点变成黑色,要么它是黑色而S增加了一个黑色祖父。所以,通过N的路径都增加了一个黑色结点,如图所示。 * 计算机应用技术研究所 * 特殊根树与算法 平衡树模型 红黑树模型 B树模型 * B树 ?【定义】B树中所有结点的孩子结点数目的最大值称为B树的阶,通常用m表示,出于查找效率考虑,要求m≥3。 一棵m阶B树一般具有以下性质: (1)每个结点最多有m个分支,最少分支数要看是否为根结点,若为根结点,则根结点的分支数至少为2,否则非根结点至少有??m/2?个分支。 (2)结点的分支数等于关键字数加1,即n?(k≤n≤m)个分支的结点含有n?1个关键字,它们按递增顺序排列。 其中,k = 2(根结点)或?m/2? (非根结点)。 * B树 * 例 例如,图表示为一棵5阶B树(即树中任一结点至多含有 4个关键字,5棵子树),下面将以该B树为例详细介绍B树的查找、插入、删除操作。 * 查找操作 根据结点的孩子数做分支界定。比较要查找的值与当前值的大小,若比当前值小则在其左子树,否则在其右子树,递归查找,直到找到相等的结点为止,并返回该结点的位置。如果直到叶子结点仍然没有找到则返回Null。 * 插入操作 插入操作后所构成的新树必须满足B树性质。对于高度为h的m阶B树,新结点一般插在第B层。分两种情况讨论具体的插入算法: (1)若该结点中关键字个数小于m-1,则直接插入即可。 (2)若该结点中关键字个数等于m-1,以中间关键字为界将结点一分为二,产生一个新结点,并把中间关键字插入到父结点中; 重复上述步骤,直到完成插入过程。最坏情况是一直分裂到根结点,建立一个新的根结点,此时整个B树增加一层。 * 举例说明 【例】插入以下字符到一棵空的5阶B树中(非根结点关键字数小于2个就合并,大于4个就分裂):A C G N H E K Q M F W L T Z D P R X Y S。 * 举例说明 * 举例说明 * 删除操作 第一种情况,若删除前该结点中关键字个数n≥?m/2?,那么直接删除该结点。 * 删除操作 * 删除操作 * 删除操作 * 删除操作 * 删除操作 * 本章学习内容 无向树的基本知识 1 根
您可能关注的文档
最近下载
- 2022年4月自考试题07724物流系统工程.docx VIP
- 2021年10月自考(07724)《物流系统工程》考试题.pdf VIP
- 吉林省2025年初中学业水平考试暨第四次统一模拟联考 数学试卷(含答题卡、答案).pdf VIP
- 【精选】《专家与通人》《专家与通人》.ppt VIP
- 卫星通信基础题库及答案.doc
- GB51101-2016 太阳能发电站支架基础技术规范.docx VIP
- 部编版小学六年级语文上册第17课《盼》精美课件.pptx
- 工厂火灾应急处置流程.pptx VIP
- 2025年高考语文模拟试卷03(新高考Ⅱ卷)及答案.docx VIP
- 《电气控制技术应用与实训》 课件 4.1工作台自动往返控制电路安装与调试.pptx
原创力文档


文档评论(0)