平衡二叉树的生成过程
来源:互联网 发布:制作飞行棋软件 编辑:程序博客网 时间:2024/05/13 07:52
平衡二叉树是在构造二叉排序树的过程中,每当插入一个新结点时,首先检查是否因插入新结点而破坏了二叉排序树的平衡性,若是,则找出其中的最小不平衡子树,在保持二叉排序树特性的前提下,调整最小不平衡子树中各结点之间的链接关系,进行相应的旋转,使之成为新的平衡子树。具体步骤如下:
⑴ 每当插入一个新结点,从该结点开始向上计算各结点的平衡因子,即计算该结点的祖先结点的平衡因子,若该结点的祖先结点的平衡因子的绝对值均不超过1,则平衡二叉树没有失去平衡,继续插入结点;
⑵ 若插入结点的某祖先结点的平衡因子的绝对值大于1,则找出其中最小不平衡子树的根结点;
⑶ 判断新插入的结点与最小不平衡子树的根结点的关系,确定是哪种类型的调整;
⑷ 如果是LL型或RR型,只需应用扁担原理旋转一次,在旋转过程中,如果出现冲突,应用旋转优先原则调整冲突;如果是LR型或LR型,则需应用扁担原理旋转两次,第一次最小不平衡子树的根结点先不动,调整插入结点所在子树,第二次再调整最小不平衡子树,在旋转过程中,如果出现冲突,应用旋转优先原则调整冲突;
⑸ 计算调整后的平衡二叉树中各结点的平衡因子,检验是否因为旋转而破坏其他结点的平衡因子,以及调整后的平衡二叉树中是否存在平衡因子大于1的结点。
设有关键码序列{20, 35, 40, 15, 30, 25, 38},图7-3给出了平衡二叉树树的构造过程,结点旁边标出的是该结点的平衡因子。
出自:http://jsj.ccut.edu.cn/sjjg/index.php?option=com_content&task=view&id=697&Itemid=1
- 平衡二叉树的生成过程
- 平衡二叉树的生成理论
- 平衡二叉树的创建过程
- 平衡二叉树的
- 由递增序列生成平衡的查找二叉树
- 平衡二叉树构建过程中的旋转
- 平衡二叉树的建立
- 平衡二叉树的创建
- 平衡二叉树的使用
- 平衡二叉树的判断
- 平衡二叉树的原理
- 平衡二叉树的好处
- 平衡二叉树的调整
- 平衡二叉树的旋转
- 平衡二叉树的删除
- 平衡二叉树的简介
- 平衡二叉树的判断
- 平衡二叉树的调整
- VC获取当前程序文件的路径,文件名以及路径+文件名
- FreeBSD下Mount总结
- 《RFID针车生产管理系统》介绍二
- 新时代的门前 32位世界中的64位编程
- 转换流序列化
- 平衡二叉树的生成过程
- 免费商业模式完全指南
- 常用正则表达式
- 什么是Scrum?
- C#中log4net的使用
- Android应用程序架构
- WORD 编辑
- 编写用户故事时常犯的五个错误
- Linux系统启动过程