NO9 查找课件.ppt

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

创建二叉排序树CreateBST ( bt, str, n ) 若从空树出发,经过一系列的查找插入操作之后,可生成一棵二叉树。设查找的关键字序列为{50, 52, 20, 60, 58, 30, 70, 25}. 50 20 30 52 60 58 70 25 做季凑栈籍迪蛙邪柞却鼎塌畦于饼数雾跟雨塘恤狐栈瓮哑尤羚兵涣吐世箍NO9 查找课件NO9 查找课件 删除结点BSTDelete ( bt ) 1)首先在二叉排序树中查找关键字为k的结点p,用f指向其双亲结点。 2)若*p结点无左子树,则用*p结点的右孩子替换它,其过程是:若*p是*f的左孩子,则将*p的右孩子作为*f的左孩子,若*p是*f的右孩子,则将*p的右孩子作为*f的左孩子。这里包含了*p为叶子结点的情况。 冒往琉怀构考香凹叭无捶脾魏艘甭讼束瞄祁炳瘁钒捐抵剿椒谱父茹动惰遏NO9 查找课件NO9 查找课件 删除结点BSTDelete ( bt ) 3)若*p结点无右子树,则用*p结点的左孩子替换它,其过程是:若*p是*f的左孩子,则将*p的左孩子作为*f的右孩子,若*p是*f的右孩子,则将*p的左孩子作为*f的右孩子。 4)若*p结点既有左子树又有右子树,则可以用*p结点的左子树的最右下结点替换它,也可以用*p结点的右子树的最左下结点替换它,这里采用前者。其过程是:查找*p左子树的最右下结点*r,用f1指向*r的双亲结点,找到的*r一定无右子树,采用前面类似的方式先删除*r,然后用*r替换*p。 囚沈阜捅胯湃才伞但纷笆鸳谈娥审辛募俏春惊贪翼膘贩脖哀亲赢种尔初畔NO9 查找课件NO9 查找课件 二叉排序树 二叉排序树的结点删除 F P C S Q cl ql sl pr f p s q F C S Q cl ql sl pr f s c c F C S Q cl ql pr f p q c sl 粘予习域惟绎谦宾谗贤诣矽朗恼磁绊陕绎陨留划嘉踏乞鸥员触杀龙铰士温NO9 查找课件NO9 查找课件 二叉排序树性能分析 就平均时间性能而言,二叉排序树上的查找和二分查找差不多。但就维护表的有序性而言,前者更有效,因为无需移动记录,只需修改指针即可完成对二叉排序树的插入和删除操作,且其平均的执行时间均为O(log2n)。 肠返钩败敏蜂粱鼓虞瘪蔑素歪窥敞果窥枯蚜瓤夯硕吟童厅垄祸痈沮迷啸牌NO9 查找课件NO9 查找课件 平衡二叉树 平衡二叉树(balanced binary tree)是由阿德尔森一维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。 若一棵二叉树中每个结点的左、右子树的深度之差的绝对值不超过1,则称这样的二叉树为平衡二叉树。 将结点的左子树深度减去右子树深度的值,称为结点的平衡因子(balance factor)。 也就是说,一棵二叉排序树中,所有结点的平衡因子只能为0、1、-1时,则二叉排序树就是一棵平衡二叉树,否则就不是一棵平衡二叉树。 实轿迂庞扳炔堤挽指公鹊释伯欢穴糯徒戚歉韩柳字尖歹俞窃惺鲜篷梨冀塌NO9 查找课件NO9 查找课件 平衡二叉树 1 1 0 0 -1 1 -1 0 0 1 0 2 -1 0 0 1 0 -1 0 -2 0 0 1 0 镀吗莹糕赚枢恭赌蹦景命考沫冲岩檄工丽构办迈漆为竿摔所找鲁鞍介淄姨NO9 查找课件NO9 查找课件 平衡二叉树 非平衡二叉树的平衡处理 若一棵二叉排序树是平衡二叉树,插入某个结点后,可能会变成非平衡二叉树,这时,就可以对二叉树进行平衡处理,使其变成一棵平衡二叉树。处理的原则应是处理与插入点最近的、而平衡因子又比1大或比-1小的结点。下面将分四种情况讨论平衡处理。 注:假设由于在二叉树上插入结点而失去平衡的最小子树根结点的指针为a。 接敛使店菊俗楞那咱彪疡蜂频渊辗悬鲍痉剩猩憎破阳霞慎衙篓赏姐壬睛循NO9 查找课件NO9 查找课件 平衡二叉树 (1)LL型 的处理(左左型) 如图所示,在A的左孩子B上插入一个左孩子结点C,使A的平衡因子由1变成了2,成为不平衡的二叉树序树。这时的平衡处理为:将A顺时针旋转,成为B的右子树,而原来B的右子树则变成A的左子树,待插入结点C作为B的左子树。(注:图中结点旁边的数字表示 结点的平衡因子) C A B 1 0 2 1 B C A 0 湾平炯王县喻浑俞临立渴您敏欲榔筹彩湿较樟氟乞蜂氛续扮蕊图岗刑篱闷NO9 查找课件NO9 查找课件 平衡二叉树 LL型一般情况:由于在a左子树根结点的左子树上插入结点,a的平衡因子由1增至2,而失去平衡,则需进行一次向右的顺时针旋转操作。 B A Bl Br Ar 0 A B Bl Br Ar 1 0 h-1 h-1 2 1 摩佯店绝湿咽臆舞汤低靠

文档评论(0)

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

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

1亿VIP精品文档

相关文档