《数据结构》陈慧南_第07章搜索树.ppt_第1页
《数据结构》陈慧南_第07章搜索树.ppt_第2页
《数据结构》陈慧南_第07章搜索树.ppt_第3页
《数据结构》陈慧南_第07章搜索树.ppt_第4页
《数据结构》陈慧南_第07章搜索树.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南京市后大学电脑学院真惠男2006年九月,数据结构,Data Structures in C,南京市后大学计算机学院真惠男2006年9月,第7章动态设置和搜索树,南京市后大学计算机学院真惠男2006年9月,第7.1次搜索树7.2次南京市邮政大学计算机学院真惠男2006年9月7.1.1定义辅助搜索树,定义7.1节点设置关键字值表征,假定所有节点的关键字值不同,辅助搜索树或空二叉树; (2)如果右侧子树不为空,则右侧子树中所有节点的关键点值大于根节点的关键点值。(3)左侧和右侧的子树也分别是二进制搜索树。南京市邮政大学电脑学院陈慧南2006年九月,性质7.1牙齿中间顺序通过第二次搜索树,将得到按关

2、键字值升序排序的顺序。(David assell,Northern Exposure(美国电视电视剧),计算机),南京市邮件大学电脑学院真惠南2006年九月,第二次搜索树类template class bstree 3360 public dynamic set public 330ResultCode Search(T,南京市邮政和通信大学电脑学院Chen huinan 2006年九月,7.1.2二进制搜索树搜索,二进制搜索树搜索递归算法Template result code bs tree :3360 Search(Template 7.1.3插入第二个搜索树,template resu

3、lt code bs tree 3360: insert(t,南京市邮政大学电脑学院真惠男2006年九月,If(! 根)根=p;Elseif (x元素)q-lchild=p;else q-rChild=p;Return Success,南京市邮政大学电脑学院镇惠南2006年九月,南京市邮政大学电脑学院镇惠南2006年9月,7.1.4删除第二个搜索树,南京市邮政大学计算机学院镇惠南2006年9月,如果节点*p是一棵非空树或*p是树叶,*p是*p的唯一孩子(c如果删除的节点*p是根节点,则删除后,节点*c将成为新根节点。如果*p是父*q的左边孩子,则*c也必须是*q的左边孩子。否则,*c将成为*q

4、的右侧孩子。最后,释放节点*p占用的空间。南京市邮政大学电脑学院镇惠南2006年九月,删除28,南京市邮政大学电脑学院镇惠南2006年9月,南京市邮政大学计算机学院镇惠南2006年9月,template result code bs tree 33603360 remove南京市邮政大学计算机学院镇惠南206年9月/删除节点else c=p-rChild;If (p=root)根=c;else if(p=q-lChild)q-lChild=c;else q-rChild=c;delete p;Return Success,南京市邮政大学电脑学院陈慧南2006年九月,7.1.5平均情况时间分析,

5、二次搜索树搜索的平均时间为O(log2n)。最差情况下,搜索时间为O(n)。假设在南京市邮政大学电脑学院陈慧南2006年九月,n(n1)个关键字的序列中,I个关键字小于第一个关键字。n-i-1个关键字大于第一个关键字。由牙齿序列组成的二进制搜索树,左侧的子树包含I个节点,右侧的子树包含n-i-1个节点。Pi(n)包含N个节点,左侧的子树包含I个节点,右侧的子树包含n-i-1个节点,在辅助搜索树中以等效概率搜索,以及成功搜索关键字的平均比较次数。南京市邮政大学电脑学院陈慧南2006年九月,p(n)是在具有N个节点的次搜索树中成功搜索关键字的平均比较次数。南京市邮政大学电脑学院金惠南2006年九月

6、,南京市邮政大学电脑学院金惠南2006年9月,7.2次平衡木,南京市邮政大学计算机学院金惠南2006年9月,7.2.1次平衡木定义,7.2次平衡木节点的平衡因子定义为该节点左侧子树的高度减去右侧子树的高度。AVL辅助搜索树是辅助搜索树和AVL树。在以下说明中,AVL树(AVL树)表示AVL二进制搜索树。南京市邮政大学电脑学院镇惠南2006年九月,南京市邮政大学电脑学院镇惠南2006年9月,9.2.2双叉平衡树类,template struct AVL node AVL node(const,南京市邮政大学计算机学院镇惠template class AVL templateResultCode

7、Search(T),南京市邮政大学电脑学院Chen huinan 2006年九月,private: AVLNode * rootResultCode Insert(AVLNode*,南京市邮政和通信大学电脑学院陈慧南2006年九月,7.2.3次平衡树的平衡旋转,插入:25,35,14,44新元素25后,牙齿树仍然平衡插入35:在从根到35的路径中,36的平衡因子不是0牙齿,新元素35插入到36的短子树中。插入后,树仍然是二次平衡树。南京市邮政大学电脑学院千惠南2006年九月,插入14:root到14的路径,12的平衡因子不是0牙齿,新元素14插入12的高子树,即14插入12的右子树的左子树。插

8、入后,牙齿树不再是次均衡树。插入44:在从根到44的路径中,43和56的平衡因子都不是0牙齿。其中56是最接近44且平衡系数值不是0牙齿的节点。新元素44插在56的高树上,即44插在56的左木子树的左侧。插入后,树不再是次要平衡树。假设南京市邮政大学电脑学院陈慧南2006年九月,新节点*q已插入节点*s的左侧子树中,(1)新节点*q已插入到树中,作为辅助搜索树。(2)节点*s是具有新节点*q的非零平衡系数值(插入前的值)的最近祖先。(3)节点*q插入节点*s的左侧子树中。(4)修改了从节点*s到新节点*q的路径中所有节点(*s除外)的平衡系数值。南京市邮政大学电脑学院陈慧南2006年九月,情况

9、插入前,从根点到新节点Q插入位置的路径上所有节点的平衡系数值为0,插入Q后,只需将根节点的平衡系数更改为1。然后将AVL树的高度加1,即可完成插入操作。南京市邮政大学电脑学院陈慧南2006年九月,案例2,新节点Q是节点S低的子树(假设S的平衡系数bF为-1,Q插入S的左侧子树),插入后S的平衡系数bF为0,插入算法结束即可。,南京市邮政大学电脑学院金惠南2006年九月,情况3,3360牙齿更高的李子(s-bF=1)LL-rotation(R-bF=1),南京市邮政大学计算机学院陈惠南2006年9月R-bF=0布列克;case 03360s-bF=r-bF=0;布列克;case-1:s-bF=0

10、;r-bF=1;南京市后大学电脑学院真惠南2006年九月,模板void AVL tree 3360: l rotation(AVL node *,南京市后大学电脑学院真惠南2006年9月,else /LR旋转u=R-rChildu-lChild=r;s-lChild=u-rChild;u-rChild=s;交换机(u-BF)case 13360s-BF=-1;r-bF=0;布列克;case 03360s-bF=r-bF=0;布列克;case-1:s-bF=0;r-bF=1;s=u;/s表示新子树的根s-bF=0。/节点s的平衡因子为0 unBalanced=false。/重新平衡工作结束,南京

11、市邮政大学电脑学院镇惠南2006年九月,7.2.4次平衡树插入,南京市邮政大学电脑学院镇惠南2006年9月,次平衡树插入template result code AVL tree 333666南京市邮政大学计算机学院镇惠南2006年9月未平衡(If)交换机(p-BF)盘柜-1: p-BF=0;UnBalanced=false布列克;case 03360 p-bF=1;布列克;case 13360 l rotation(p,un balanced);Else if (x=p-element) /包含重复元素unBalanced=falsex=p-element;Result=Duplicate,南京市邮政大学电脑学院真惠南2006年九月,else /(继续)result=insert (p-rchild,x,unbalanced);未平衡(If)交换机(p-BF)case 13360 p-BF=0;UnBalanced=false布列克;case 03360

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论