北京师范大学数据结构教学资料 第7章——搜索结构资料教程.ppt
* 例如,输入关键码序列为 { 16, 3, 7, 11, 9, 26, 18, 14, 15 },插入和调整过程如下。 16 0 16 3 -1 0 左右双旋 7 3 16 0 0 0 7 3 11 0 -1 1 16 右单旋 3 7 16 9 0 0 0 1 11 16 3 7 0 1 -2 7 3 16 11 9 0 -1 -2 2 3 7 11 26 9 16 0 1 1 2 * 右左双旋 0 左单旋 18 16 0 0 7 3 26 11 9 0 0 0 3 16 0 9 1 7 11 26 18 3 -1 -1 7 16 14 26 9 1 11 2 7 3 9 0 18 26 11 -1 16 1 * 15 18 2 3 18 16 -2 左右双旋 7 3 0 0 0 11 7 14 9 -1 16 15 0 1 11 26 26 14 1 -2 9 从空树开始的建树过程 * AVL树的删除 如果被删结点x最多只有一个子女,可做简单删除: 将结点x从树中删去。 因为结点x最多有一个子女,可以简单地把x的双亲中原来指向x的指针改指到这个子女结点; 如果结点x没有子女,x双亲原来指向x的指针置为NULL。 将原来以结点x为根的子树的高度减1。 * 如果被删结点 x 有两个子女: 搜索 x 在中序次序下的直接前驱 y (同样可以找直接后继)。 把结点 y 的内容传送给结点 x,现在问题转移到删除结点 y。把结点 y 当作被删结点x。 因为结点 y 最多有一个子女,可以简单地用 1. 给出的方法进行删除。 必须沿结点 x 通向根的路径反向追踪高度的变化对路径上各个结点的影响。 * 用一个布尔变量shorter(缩短)来指明子树高度是否被缩短。在每个结点上要做的操作取决于 shorter的值和结点的bf,有时还要依赖子女的bf。 布尔变量shorter的值初始化为True。然后对于从x的双亲到根的路径上的各个结点p,在 shorter保持为True时执行下面操作。如果 shorter变成False,算法终止。 当前结点 p 的bf为0。如果它的左子树或右子树被缩短,则它的bf改为1或-1,同时 shorter置为False。 * 删除后不旋转 结点 p 的 bf 不为0且较高的子树被缩短。则 p 的 bf 改为0,同时shorter置为True。 p 0 h h h-1 p 1 h h-1 删除后不旋转 p -1 h h-1 p 0 h-1 h-1 * 结点 p 的 bf 不为0,且较矮的子树又被缩短。则在结点 p 发生不平衡。需要进行平衡化旋转来恢复平衡。 令 p 的较高的子树的根为 q(该子树未被缩短),根据 q 的 bf,有如下 3 种平衡化操作。 旋转的方向取决于是结点 p 的哪一棵子树被缩短。 * 如果 q(较高的子树)的 bf 为0,执行一个单旋转来恢复结点 p 的平衡,置shorter为False。无需检查上层结点的平衡因子。 左单旋转 1 h h-1 p h q -1 1 h h h-1 p h 0 q * 如果 q 的 bf 与 p 的 bf 相同,则执行一个单旋转来恢复平衡,结点 p 和 q 的 bf 均改为0,同时置shorter为True。还要继续检查上层结点的平衡因子。 左单旋转 0 h-1 h-1 p h q 0 1 h h-1 h-1 p h 1 q * 如果 p 与 q 的 bf 相反,则执行一个双旋转来恢复平衡。先围绕 q 转再围绕 p 转。新根结点的 bf 置为0,其他结点的 bf 相应处理,同时置shorter为True。 0 h-1 h-1 h-1 h-1 0 0 p q r 右左双旋转 高度减1 1 h h-1 p -1 q h-1 或 h-2 h-1 或 h-2 h-1 r * A B C D E F G H I J K L M N O P Q R S T 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 树的初始状态 举例 * 删除结点P 寻找结点P的中序直接前驱O, 用O顶替P, 删除O。 A B C D E F G H I J K L M N O P Q R S T 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 用O取代P * 删除结点P A B C D E F G H I J K L M N O Q R S T 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 1 0 1 1 1 左单旋转 O与R的平衡因子同号, 以R为旋转轴做左单旋转, M的子树高度减 1。 * 删除结点P M的子树高度减 1,M发生不平衡。M与E的平衡因子反号, 做左右双旋转。 A B C D E
您可能关注的文档
- 北京亮起来了09研究报告.ppt
- 北京亮起来了教学讲义.ppt
- 北京人的习俗研究报告.ppt
- 北京人的习俗讲义教材.ppt
- 北京优视米网络科技有限公司_图文教学教案.ppt
- 北京保利昌平别墅项目策划报告_1538844287教学教案.ppt
- 北京光大锦绣城营销策划教学教案.ppt
- 北京公交总公司管理咨询项目企业发展战略报告教学讲义.ppt
- 北京养老地产分析及案例介绍.ppt教学教案.ppt
- 北京别墅市场特征及发展趋势教学讲义.ppt
- 昆仑集团2026届大学毕业生招聘备考题库及答案详解1套.docx
- 昆仑集团2026届大学毕业生招聘备考题库及完整答案详解1套.docx
- 部编八年级语文下册第三单元教学设计教案.doc
- 昆仑集团2026届大学毕业生招聘备考题库及答案详解一套.docx
- 昆仑集团2026届大学毕业生招聘备考题库及参考答案详解1套.docx
- 昆仑集团2026届大学毕业生招聘备考题库及参考答案详解一套.docx
- 皮肤科住院医师2025年工作总结及2026年工作规划.docx
- 2026年云南省普洱市辅警人员招聘考试试卷带答案.docx
- 文县公费师范生招聘真题2025.pdf
- 景德镇市事业单位2026年统一公开招聘工作人员报考指南备考题库带答案详解.docx
最近下载
- WST491-2024梅毒非特异性抗体检测指南试题.docx VIP
- 110kV〜750kV架空输电线路施工及验收规范.docx VIP
- 深度解析(2026)《WST 491-2016梅毒非特异性抗体检测操作指南》.pptx VIP
- 2025年高考甲卷政治历年真题及答案.docx VIP
- 陈敏恒 化工原理 第5版 课后习题答案.docx VIP
- 绘本概念与分类.ppt VIP
- 年产3亿片维生素C片剂生产车间 鉴.docx VIP
- 2026年相变材料在机械系统中的动态响应.pptx VIP
- 2025年浙江广厦建设职业技术大学辅导员考试真题.docx VIP
- 2026年春季学期中小学1530安全教育记录.docx VIP
原创力文档

文档评论(0)