版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
aparticularwayofstoringandorganizingdatainacomputersothatitcanused Color:boolorKey:anytypewhichisLeft:apointeroftree’snodethatpointstoleftRight:apointeroftree’snodethatpointstorightParent:apointeroftree’snodethatpointsto所 性质1性质2性质3.所有叶子都是黑色(叶子是NIL节点)性质5
哨兵节点。哨兵节点表示是这颗树的边界。哨兵节点和树的普通节点有着相同的域(就是一个普通的节点),除了 有至少2𝑏ℎ(𝑣)-1个内中bh(v)=从v到 SEARCHPREDECESORSUCCESSOR 些操作的时间复杂度也是O(lg 是O(lgn)(uncle)
nodegrandparent(noden)}nodeuncle(noden)if(n->parent==elsereturngrandparent(n)-}:voidinsert_case1(noden)if(n->parent==NIL)n->color=BLACK;elseinsert_case2(n);}:voidinsert_case2(noden)if(n->parent->colorBLACKreturn/*else}
Caseremains:P情形3:如果父节点P和叔父节点U二者都是红色,(此时新插入节点N做为P的左子节点或右子节点都voidinsert_case3(noden)if(uncle(n)!=NIL&&uncle(n)->color==RED){n->parent->color=BLACK;uncle(n)->color=BLACK;grandparent(n)->color=RED;}else}LeftChild->key<=node->key<=RightChild-
voidrotate_right(pivot){parent=pivot->parent;root=parent->parent;
parent->left=pivot->right;if(pivot->right!=null){pivot->right->parent=}pivot->parent=if(parent==root-root->left=}elseroot->right=}pivot->right=parent;parent->parent=pivot;}
Caseremains:P[red],U:voidinsert_case4(noden)if(n==n->parent->rightn->parent==grandparent(n)->left)n=n-}elseif(n==n->parent->leftn->parent==grandparent(n)->right)n=n->right;}}
Caseremains:P[red],UN[red]inthe“outerlayer”ofthe情形5父节点P是红色而叔父节点U是黑色或缺少,新节点N是其父节点的左子节点,而父节点P又是其父节点G的左子节点。在这种情形下,我们进行针对祖父节点G的一次右旋转,并改变P和G的voidinsert_case5(noden){n->parent->color=BLACK;grandparent(n)->color=RED;if(n==n->parent->left&&n->parent==grandparent(n)->left)}else{/*Here,n==n->parent->rightn->parent==grandparent(n)->right}} SL(LeftSon)称为S的左儿子,SR(RightSon)称为S兄弟节点:sibling(structnode*nif(n==n->parent-returnn->parent-elsereturnn->parent-}voiddelete_one_child(structnode*n)/**Precondition:nhasatmostonenon-nullchild.*/structnode*child=is_leaf(n->right)?n->left:n->right; ce_node(n,child);if(n->color==BLACK)if(child->color==RED)child->color=elsedelete_case1(child);//entrythefirst}}voiddelete_case1(structnode*n)if(n->parent!=NIL)}2S是红色。在这种情况下我们在N的父亲上做左旋转,把红色兄弟转换成NN的父亲和祖父的颜色。voiddelete_case2(structnode*n){structnode*s=sibling(n);if(s->color==RED)n->parent->color=RED;s->color=BLACK;if(n==n->parent-elserotate_right(s);
Caseremains:S[black],P[blackOr3N的父亲、S和S绘Svoiddelete_case3(structnode*n)structnode*s=if((n->parent->color==&&(s->color==&&(s->left->color==&&(s->right->color==BLACK))s->color=}else}
Case S[black],P[black],Notbothof𝑆𝐿𝑎𝑛𝑑𝑆𝑅𝑎𝑟𝑒S[black],情况4:S和S的儿子都是黑色,但是N简单的交换Nvoiddelete_case4(structnodestructnode*s=if((n->parent->color==&&(s->color==&&(s->left->color==&&(s->right->color==BLACK)){s->color=RED;n->parent->color=}else}
Caseremains:S[black],Notbothof𝑆𝐿𝑎𝑛𝑑𝑆𝑅𝑎𝑟𝑒情况5:S是黑色,S的左儿子是红色,S的右儿子是黑色,而N是它父亲的左儿子。在这种情况下我们在S上做右旋转,这样S的左儿子成为S的父亲和N的新兄弟。我们接着交换S和它的新父亲的颜色。voiddelete_case5(structnode*n)structnode*s=if(s->color==BLACK){//Is“ifstatement”if((n==n->parent-&&(s->right->color==BLACK)&&(s->left->color==//Areall“teststatements”s->color=s->left->color=}elseif((n==n->parent-&&(s->left->color==BLACK)&&(s->right->color==s->color=s->right->color=BLACK;
Caseremains:S[black],thefarthersonofSfromNis情况6:S是黑色,S的右儿子是红色,而N是它父亲的左儿子。在这种情况下我们在N的父亲上做左旋转,这样S成为N的父亲和S的右儿子的父亲。我们接着交换NSS的右儿子为黑色。voiddelete
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中物理第十三章光综合测试本章整合提升课件新人教版选修3-
- Windows Server网络管理项目教程(Windows Server 2022)(微课版)2.4 安装活动目录的必要条件
- 高中物理第十三章光2全反射课时作业课件新人教版选修3-
- 语法复习教学设计
- 丰田生产模式培训教材图文
- 2024至2030年中国往复式低温液体泵行业投资前景及策略咨询研究报告
- 2010-2012年羟乙基纤维素行业市场研究与竞争力分析报告
- 零陵卷烟厂两退人员需求调查报告书
- 2024至2030年中国多媒体教学控制台行业投资前景及策略咨询研究报告
- 2024至2030年中国压线针式母头数据监测研究报告
- 非煤矿山培训课件
- 【教学课件】积极维护人身权利-示范课件
- 等级保护课件
- 酒精依赖课件
- 数学绘本《乱七八糟的魔女之城》课件
- 医院智能化弱电设计方案
- “双减”背景下家校社协同育人的内涵、机制与实践路径
- 汽车理论试题卷及答案
- (完整版)办理《出生医学证明》委托书
- 施工安全用电检查表(标准范本)
- 论动体的电动力学(双语)
评论
0/150
提交评论