- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 动态查找树表—平衡二叉树 平衡二叉树的定义 如何构造平衡二叉树 平衡二叉树的查找性能分析 小结和作业 课堂练习 程序讲解 动态查找树表—平衡二叉树 LL型 LR型 RR型 RL型 应用举例 造成不平衡的原因 总结 平衡二叉树 由关键字序列 3,1,2,5,4构造而得的二叉查找树 由关键字序列 1,2,3,4,5构造而得的二叉查找树, ASL =(1+2+3+4+5)/ 5 = 3 ASL =(1+2+2+3+3)/ 5 = 2.2 (a) (b) 2 1 3 4 5 3 5 4 1 2 根据不同的关键字输入序列,可以生成各种不同形态的二叉查找树,其性能差别很大 从(a)图知,其已蜕变成单分支树,平均查找时间为(N+1)/2 与顺序查找相同。 所以,含有n个结点的二叉查找树的平均查找长度和树的形态有关。 在某些情况下,需要将二叉查找树进行平衡化处理,将其调整为平衡二叉树时,来提高它的查找性能。 平衡二叉树 平衡二叉树 二叉平衡树: 树中每个结点的左、右子树深度之差的绝对值不大于1,即 。 hL-hR =1 平衡二叉树 结点的平衡因子:该结点的左子树的深度减去它的右子树的深度 平衡二叉树所有结点的平衡因子只可能为: -1,0,1。 平衡二叉树 5 4 8 2 1 非平衡树 平衡因子 1 0 1 2 2 0 5 4 8 2 0 0 1 1 平衡因子 =1 平衡树 平衡二叉树的构造 1)新结点插在平衡因子值为0的结点左或右都不会造成不平衡。 平衡结点 50 左重结点 右重结点 50 40 55 50 35 60 2)新结点插在平衡因子值为1的结点的右分支,或者-1的结点的左分支,该结点也不会造成不平衡。 1 -1 0 0 0 50 1 40 50 -1 60 平衡二叉树的构造 3)新结点插在平衡因子值为1的结点的左分支上,或者为-1的结点的右分支上,此时,该结点的平衡因子的绝对值大于1,造成二叉查找树不平衡。 50 60 40 45 35 20 插入结点20后,根结点的平衡因子由1变为2 1 0 0 0 0 0 0 0 1 1 2 平衡二叉树的构造 插入结点70后,根结点的平衡因子由-1变为-2 50 60 40 65 55 70 -1 0 0 0 0 0 0 0 -1 -1 -2 平衡二叉树的构造 1.LL型 新结点插在左重结点A( A是离新结点插入位置最近的左重结点地址)的左孩子的左分支上。如下图棕色代表新结点,称LL型。 A B BL BR AR A B BL AR h-1 h-1 h-1 h-1 平衡二叉查找树 插入x后不再平衡 1 A B BL BR AR h h-1 X 2 平衡二叉树的构造 1.LL型调整过程: 1)将BA向右旋转90度,把B的右孩子变为A的左孩子 2)A变为B的右孩子,B带替A的位置。 A B BL BR AR h h-1 X 2 A B BL BR AR h h-1 X 0 平衡二叉树的构造 2.LR型新结点插在左重结点A( A是离新结点插入位置最近的左重结点地址)的左孩子的右孩子的左分支上。如下图棕色代表新结点,称LR型。 1 B CR A B BL AR h-1 C CL h-2 h-1 B CR A B BL AR h-1 C CL X 2 平衡二叉树的构造 2.LR型调整过程----①:1.将CB向左旋转90度,把CL变为B的右子树,把B变为C的左孩子; h-1 B CR A B BL AR h-1 C CL 2 h-1 CR A B BL AR h-1 C CL X 2 X 平衡二叉树的构造 2.LR型调整过程----②:2)将BCA向右旋转90度,把C的右孩子变为A的左孩子,A变为C的右孩子;C带替A的位置。 h-1 CR A B BL AR h-1 C CL X 2 h-1 CR A B BL AR h-1 C CL X 0 平衡二叉树的构造 3.RR型新结点插在右重结点A( A是离新结点插入位置最近的右重结点地址)的右孩子的右分支上。如下图棕色代表新结点,称 RR型。 -1 A AL h-1 BR A B BL h-1 A AL h-1 -2 BR A B BL h X 平衡二叉树的构造 3.RR型调整过程: 将BA向左旋转90度,把B的左孩子变为A的右孩子,A变为B的左孩子,B带替A的位置。 A AL h-1 -2 BR A B BL h X AL h-1 0 BR A B BL h X 平衡二叉树的构造 4.RL型新结点插在右重结点A( A是离新结点插入位置最近的右重结点地址)的右孩子的左孩子的右分支上。如下图棕色代表新结点,称RL型。 -1 A AL h-1 BR A B CL CR C h-2 A AL h-1 BR A B CL CR
文档评论(0)