数据结构_第8章 查找.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构_第8章 查找

删除的结点既有左子树又有右子树,可通过下面语句实现。 q=p;s=p-lchild; while (s-rchild) {q=s;s=s-rchild;} p-data=s-data; if (q!=p) q-rchild=s-lchild; else q-lchild=s-lchild; free(s); R D Q RR DR C CL QL GL G p f 具体实现 BST 上查找过程,是从根结点到所找到结点的一条路径。与给定值比较次数等于该路径长度+1,最大次数不超过树的深度。但含有n个结点的BST却不唯一。因此,含有n个结点的BST的ASL和树的形态有关。 最差情况是退化为单支树,ASL=(n+1)/2 (同顺序查找)。最好情况与折半查找相同,与log2n成正比。 12 45 24 53 12 37 93 (45, 24, 53, 12, 37, 93) 24 37 45 53 93 (12, 24, 37, 45, 53, 93) ASL(a)=(1+2+2+3+3+3)/6 =14/6 ASL(b)=(1+2+3+4+5+6)/6 =21/6 查找分析 平衡二叉树是二叉排序树的另一种形式,其特点为:树中每个结点的左、右子树高度之差的绝对值不大于1 。若平衡因子定义为结点左子树的高度减去右子树的高度,则平衡二叉树所有结点的平衡因子只可能是-1、0、1的二叉排序树。例如: 2 0 2 1 0 平衡树 非平衡树 -2 -2 0 -1 0 0 1 0 1 8.3.2 平衡二叉树 采取的方法是在向平衡二叉树插入结点时进行平衡化旋转。基本思想为:假定向平衡树插入一个结点后破坏了其平衡性,则首先要找出唯一一棵最小不平衡子树,然后再调整该子树中有关结点之间的链接关系,使之成为一棵新的平衡二叉树,调整后的二叉树仍然满足二叉树的性质,最小不平衡子树被调整为平衡子树后,整个二叉排序树又成为一棵平衡树。 最小不平衡子树是指 离插入结点最近,且平衡 因子绝对值大于1的祖先 结点作为根的子树。 0 27 51 10 18 41 0 -1 1 0 1 27 51 10 18 41 0 -2 1 1 16 0 构造平衡二叉树的方法 (1)单向右旋平衡处理( LL型) : 新插入结点在A的左子树根结点的左子树上。A的平衡因子由1增至2,导致失衡。 调整规则:将结点A 的左孩子B向上旋转成为新二叉树的根,将结点A 及其右子树向右下旋转成为结点B的右子树,而结点B原来的右子树BR则成为结点A的左子树。(进行一次顺时针旋转) 调整方法分四种情况 h +1 h-1 A B AR BR BL h-1 0 +2 +1 h h-1 A B AR BR BL 0 0 具体实现: lc=p-lchild; p-lchild=lc-rchild; lc-rchild=p; p=lc; p (2)单向左旋平衡处理( RR型) : 新插入结点在A的右子树根结点的右子树上。A的平衡因子由-1增至-2,导致失衡。 调整规则:将结点A 的右孩子B向上旋转成为新二叉树的根,将结点A 及其左子树向左下旋转成为结点B的左子树,而结点B原来的左子树BL则成为结点A的右子树。(进行一次逆时针旋转) 调整方法分四种情况 -2 h h-1 h-1 B A BR BL AL -1 0 -1 h 0 B A BR BL AL h-1 0 具体实现: rc=p-rchild; p-rchild=rc-lchild; rc-rchild=p; p=rc; p (3)先左后右平衡处理( LR型) : 新插入结点在A的左子树根结点的右子树上。A的平衡因子由1增至2,导致失衡。 调整规则:将A的左孩子的右子树的根结点C旋转到结点A的位置成为新二叉树的根,将结点B及其左子树向左下旋转成为C的左子树,而C 结点原来的左子树CL则作为结点B的右子树;将结点A及其右子树向右下旋转成为结点C的右子树,C 结点原来的右子树CR作为结点A的左子树。(需进行两次旋转,先逆时针后顺时针) 调整方法分四种情况 +2 -1 +1 h-1 A B AR CL BL h-1 0 C CR h-2 0 h-1 +1 +2 h-1 C B AR CL BL h-1 0 CR h-2 A +2 h-1 0 C B AR CL BL 0 CR A -1 将A的左孩子的右子树的根结点C旋转到结点A的位置成为新二叉树的根,将结点B及其左子树向左下旋转成为C的左子树,而C 结点原来的左子树CL则作为结点B的右子树。(第一次逆时针旋转) 将结点A及其右子树向右下旋转成为结点C的右子树,C 结点原来的右子树CR作为结点A的左子树。(第二

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档