网站大量收购独家精品文档,联系QQ:2885784924

平衡二叉树和B树.pptVIP

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

一棵m阶的B-树,或为空树,或为满足下列特性的m叉树1、若根结点不是叶子结点,则至少有两棵子树2、除根之外的所有非终端(叶子)结点至少有棵子树,最多有m棵子树。B-树3、所有非终端结点中包含下列信息数据(n,A0,K1,A1,K2,A2,…,Kn,An)4、所有叶子结点都在同一层,叶子结点中只有关键字,无指针(或有指针,但为空指针)a.n为关键字的个数,多个关键字自小至大有序排列,即:K1K2…Kn;b.且Ai-1所指子树上所有关键字均小于Ki;c.Ai所指子树上所有关键字均大于Ki;d.关键字的个数比子树的个数小1;B-树从根结点出发,沿指针搜索结点和在结点内进行顺序(或折半)查找两个过程交叉进行。树若查找成功,则返回指向被查关键字所在结点的指针和关键字在结点中的位置;B-树插入结点在查找不成功之后,需进行插入。显然,关键字插入的位置必定在最下层的叶子结点,有下列几种情况(以3-阶为例):1)插入后,该结点的子树个数nm,不需要修改指针;如插入关键字6050∧20∧40∧∧80∧∧60∧80∧B-树插入结点插入后,该结点的子树个数n=m,则需进行“结点分裂”:

令s=?m/2?在原结点中保留(A0,K1,。。。,Ks-1,As-1);建新结点(As,Ks+1,。。。,Kn,An);将(Ks,p)插入双亲结点B-树插入结点50∧20∧40∧∧60∧80∧再插入关键字90∧60∧80∧90∧∧60∧∧90∧5080B-树插入结点80303)若双亲为空,则建新的根结点。∧20∧40∧∧60∧∧90∧5080再插入关键字30∧20∧30∧40∧∧20∧∧40∧30508050STEP1STEP2STEP3首先必须找到待删关键字所在结点,并且要求删除之后,结点中关键字的个数不能小于?m/2?-1否则,要从其左(或右)兄弟结点“借调”关键字若其左和右兄弟结点均无关键字可借(结点中只有最少量的关键字),则必须进行结点的“合并”。删除操作和插入结点的考虑相反B-树删除结点B-树删除结点1.被删除结点上关键字个数不少于?m/2?-1,那么只需从该结点上删除该关键字Ki和相应的指针Ai。例如下图3-阶B树中删除关键字12时,直接将12删除即可。539024∧50∧∧100∧∧3∧12∧∧37∧45∧61∧70∧∧3∧abcdefghB-树删除结点2.如果被删除结点上关键字个数等于?m/2?-1,而与其相邻的右兄弟结点(或左兄弟)结点中关键字的个数大于?m/2?-1上图为删除50前、后的3阶B-树。539024∧50∧∧100∧∧3∧∧37∧45∧61∧70∧abcdefgh∧70∧6190∧53∧B-树删除结点3.被删除关键字所在结点和其相邻的右兄弟结点(或左兄弟)结点中关键字的个数均等于?m/2?-1,90619024∧100∧∧3∧∧37∧45abcdefgh∧70∧∧53∧删除关键字53∧61∧70∧B-树删除结点9024∧100∧∧3∧∧37∧45abcdegh练习:从上面的B树中删除关键字37∧61∧70∧B-树删除结点^^24^∧3∧^3^2490∧100∧∧37∧45abcdegh∧61∧70∧37没有右兄弟且其左兄弟也只有一个关键字,把37双亲结点中小于37的关键字24与左兄弟中的3合并成一个结点。此时,发现左右子树高度不同,必须继续处理。4590∧100∧ech324∧61∧70∧g以A为根的树的高度是h+1。加入结点X使得A的左子树长高,造成A的平衡因子为2。隐含着X的插入,最先波及到的是A,让A变的不平衡。所以B的平衡因子不会为1,否则,B就不平衡了,轮不到A。B的平衡因子也不会为-1,否则,X的加入使的以B为根的子树并没有长高。ASL=(1+2+3+4+5)/5=3由关键字序列1,2,3,4,5构造而得的二叉搜索树,由关键字序列

文档评论(0)

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

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

1亿VIP精品文档

相关文档