数据结构严蔚敏 -查找表3.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构严蔚敏 -查找表3

二、二叉平衡树 1. 二叉平衡树定义 1. 二叉平衡树定义 3. 平衡旋转技术 如果在一棵平衡的二叉搜索树中插入一个新 结点,造成了不平衡。此时必须调整树的结构,使之平衡。 平衡旋转有两类: 单旋转 (左旋和右旋) 双旋转 (左平衡和右平衡) 右单旋转 如果在左子树根结点的左子树上插入结点, 引起不平衡,则需要进行右单旋转 。 以结点B为旋转轴,将结点A顺时针旋转。 左单旋转 如果在右子树根结点的右子树上插入结点, 引起不平衡,则需要进行左单旋转 以结点C为旋转轴,让结点A逆时针旋转。 先左后右双旋转 如果在左子树根结点的右子树上插入结点, 引起不平衡,则需要进行先左后右双旋转 。 先右后左双旋转 如果在右子树根结点的左子树上插入结点 引起不平衡,则需要进行先右后左双旋转 。 case 1 : 当前结点 p 的平衡因子为0。如果它的左子树或右子树被缩短,则只需要修改它的 平衡因子为 1 或-1。不需要旋转。 case 2 : 结点 p 的平衡因子不为0,且较高的子树被缩短,则 p 的平衡因子改为0。不需要旋转。 case 3 : 结点 p 的平衡因子不为0,且较矮的子树又被缩短,则在结点 p 发生不平衡。需要进行平衡化旋转来恢复平衡。 令结点 p 的较高的子树的根为 q, 根据 q 的平衡因子,有如下 3 种平衡化操作: case 3a : 如果 q (较高的子树) 的平衡因子为 0,执行一个单旋转来恢复结点 p 的平衡。 case 3b : 如果 q 的平衡因子与 p 的平衡因子相同,则执行一个单旋转来恢复平衡, 结点 p 和 q 的平衡因子均改为0。 case 3c : 如果 p 与 q 的平衡因子相反, 则执行一个双旋转来恢复平衡, 先围绕 q 转再围绕 p 转。新根结点的平衡因子置为0,其它结点的平衡因子相应处理。 设在新结点插入前AVL树的高度为 h,结点个数为 n,则插入一个新结点的时间是O(h)。 对于AVL树来说,h 多大? 设 Nh 是高度为 h 的AVL树中含有的最少结点个数。显然有: N0 = 0 (空树), N1 = 1 (仅有根结点) Nh = Nh-1 + Nh-2 +1 , h 0 * * 3. 平衡旋转技术 2. 如何构造二叉平衡树 4. 二叉平衡树的插入 5. 二叉平衡树的删除 问题: 二叉排序树的缺点是树的结构事先无法预料,随意性很大,它只与结点的值和插入的次序有关,有时会得到一颗很不平衡的二叉树。 当二叉树与理想的平衡树相差越远,树的高度越高时,其运算的时间就越长。最坏的情况下,二叉树退化成单链表,其时间复杂度由O(log2n)变为O(n)。 二叉平衡树(又称AVL树) 一棵二叉平衡树或者是空树,或者是具有下列性质的二叉排序树:它的左子树和右子树都是二叉平衡树,且左子树和右子树的高度之差的绝对值不超过1。 例如: 5 4 8 2 5 4 8 2 1 平衡树 非平衡树 15 10 32 5 12 60 45 非平衡树 结点的平衡因子:左子树的高度减右子树的高度 。 0 1 1 0 0 1 2 2 0 0 0 1 -1 0 1 -2 构造平衡的二叉排序树的方法是: 根据初始序列,从空树开始插入新结点,在插入过程 中,在保持二叉排序树特性的前提下,采用平衡旋转技 术,对最小不平衡子树进行调整,使其平衡。 2. 如何构造“二叉平衡树” 1 5 4 8 2 15 10 32 60 45 0 1 2 2 0 0 1 -2 -2 0 右单旋转 左单旋转 左右双旋转 右左双旋转 h h h A C E B D (a) (b) (c) h h + 1 B A C E D h h h + 1 C E A B D h 0 0 0 1 1 2 5 4 3 5 4 3 h h h A C E B D (a) (b) (c) h h h + 1 B A C E D h h h + 1 C E A B D -1 -2 0 -1 0 0 5 4 3 4 3 5 5 3 4 5 4 3 0 0 1 2 -1 1 0 0 1 插入 左单 旋转 右单 旋转 先左后右双旋转 4 3 5 5 4 3 +1 0 0 0 0 1 1 -1

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档