- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
非AVL树的平衡化处理 每插入一个新节点时,AVL树中相关节点的平衡状态会发生改变。 因此,在插入一个新节点后,需要从插入位置沿通向根的路径回溯,检查各节点的平衡因子(左、右子树的高度差); 如果在某一节点发现高度不平衡,停止回溯; 从发生不平衡的节点起,沿刚才回溯的路径取直接下两层的节点,做平衡化旋转。 平衡化旋转 平衡化旋转有两类: 单旋转(LL旋转和LR旋转) 双旋转(LR旋转和RL旋转) 如果这三个节点处于一条直线上,则采用单旋转进行平衡化。 如果这三个节点处于一条折线上,则采用双旋转进行平衡化。 LL旋转 RR旋转 LR双旋转 RL双旋转 4 3 2 2 3 4 20 15 18 60 70 65 平衡化旋转 若在 C 的左子树的左子树上插入 结点,使 C 的平衡因子从 1 增加 至 2, 需要进行一次顺时针旋转。 (以 B 为旋转轴) 若在 A 的右子树的右子树上插入 结点,使 A 的平衡因子从 -1 改变 为 -2,需要进行一次逆时针旋转。(以 B 为旋转轴) 2) RR 平衡旋转: 1) LL 平衡旋转: * A C C B C A B A 平衡化旋转 若在 A 的右子树的左子树上插入 结点,使 A 的平衡因子从 -1 改变 为 -2,需要先进行顺时针旋转,再逆时针旋转。(以插入的结点 B 为旋转轴) 4) RL 平衡旋转: 若在 C 的左子树的右子树上插入 结点,使 C 的平衡因子从 1 增加 至 2, 需要先进行逆时针旋转, 再顺时针旋转。(以插入的结点 B 为旋转轴) 3) LR 平衡旋转: B B C A A B C C A B A C B A C C B A 平衡化旋转 LL旋转:新插入节点在不平衡节点的左子树的左子树中; RR旋转:新插入节点在不平衡节点的右子树的右子树中; LR旋转:新插入节点在不平衡节点的左子树的右子树中; RL旋转:新插入节点在不平衡节点的右子树的左子树中。 LL (1)LL旋转:顺时针 h h h + 1 C E A B D 0 0 h h h A C E B D 0 1 在左子树D上插入新节点使其高度增1,导致节点A的平衡因子增到 2,造成了不平衡。 为使树恢复平衡,从A沿插入路径连续取3个节点A、B和D,它们处于一条方向为“/”的直线上,需要做LL旋转。 以节点B为旋转轴,将节点A顺时针旋转成为B的右孩子,B代替原来A的位置,原来B的右孩子E转为A的左孩子。 (a) B A C E D h h + 1 h 1 2 (b) (c) LL旋转的算法 template class T void AVLTreeT::RotateRight ( AVLNodeT *Tree, AVLNodeT * NewTree) { NewTree = Tree→left; Tree→left = NewTree→right; NewTree→right = Tree; } 注:Tree为子树的根节点 NewTree为子树的新的根节点 h h h + 1 C E A B D 0 0 B A C E D h h + 1 h 1 2 (2)RR旋转:逆时针 (a) h h h A C E B D -1 0 h h h + 1 C E A B D 0 0 h h h + 1 B A C E D -2 -1 (b) (c) 在右子树E中插入一个新节点,该子树高度增1导致节点A的平衡因子变成-2,出现不平衡。 沿插入路径检查三个节点A、C和E。它们处于一条方向为“\”的直线上,需要做RR旋转。 以节点C为旋转轴,让节点A反时针旋转成为C的左孩子,C代替原来A的位置,原来C的左孩子D转为A的右孩子。 RR旋转的算法 template class T void AVLTreeT ::RotateLeft ( AVLNodeT *Tree, AVLNodeT * NewTree ) { NewTree = Tree→right; Tree→right = NewTree→left; NewTree→left = Tree; } h h h + 1 C E A B D 0 0 h h h + 1 B A C E D -2 -1 (3)LR旋转:先左后右双旋转 h h h-1 A C E B D 0 h-1 F G 1 h A h h C E B D h-1 F G 2 先逆时针 后顺时针
您可能关注的文档
- 苏北四市2016届高三第一次模拟考试政治试卷资料.doc
- 苏格兰女王的悲剧资料.ppt
- 苏航、韦莎——小世界现象及其应用资料.ppt
- 苏红的画课件1资料.ppt
- 苏教版.二年级下册全册一课一练资料.doc
- 苏教版。说名道姓资料.ppt
- 苏教版__六年级_商品打折问题资料.ppt
- 苏教版_二年级下册_语文_识字三_课件_资料.ppt
- 苏教版_三年级下册语文_练习2资料.ppt
- 苏教版_四年级下__燕子资料.ppt
- 2026-2030中国肿瘤mTOR抑制剂行业市场发展趋势与前景展望战略分析研究报告.docx
- 2026-2030中国网络硬件行业市场发展趋势与前景展望战略分析研究报告.docx
- 2026-2030中国牙科屏障膜行业市场发展趋势与前景展望战略分析研究报告.docx
- 2026-2030中国抗高温钻井液行业经营策略及未来发展方向研究报告.docx
- 2026-2030船体清洁机器人行业市场深度调研及前景趋势与投资研究报告.docx
- 2026-2030中国安防系统行业市场深度调研及投资策略与投资前景研究报告.docx
- 2026-2030中国圆网印花机行业市场发展趋势与前景展望战略研究报告.docx
- 2026-2030中国鸡精市场行情走势分析与未来发展前景展望研究报告.docx
- 2026-2030中国金胶行业市场运营模式及未来发展动向预测研究报告.docx
- 2026-2030中国课后辅导市场发展现状及趋势分析报告.docx
最近下载
- 2020年第37届高中物理竞赛力学专题练习39题(带详解).docx VIP
- 全文可编辑-东华科技-市场前景及投资研究报告-出海远航.ppt VIP
- 2018CPXY-J406 ZJF免拆模板现浇混凝土复合保温系统.docx VIP
- 《富致秘录》中源线建仓法(陈雅山 著 王明森 点校).pdf VIP
- 2025年29490-2023企业知识产权合规管理体系内部审核检查表 .pdf
- 华东师大版九年级数学上册期末测试卷(4套)(有答案).pdf VIP
- 2024CPXY-S58 HX雨水控制及利用设施选用与安装.docx VIP
- IT专用模板-XX部门软件工程师月度绩效考核表.xls VIP
- 2024CPXY-J498 禹途石墨烯预制沟槽地暖系统.docx VIP
- 2025年湖南省怀化市中考英语试卷真题(含答案解析).docx
原创力文档


文档评论(0)