B-树插入和删除.docVIP

  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文档。上传文档
查看更多
B-树插入和删除

题目:下图为一棵3阶B-树,请依次执行下列操作 (1)???????在原树的基础上插入45 (2)???????在(1)的结果基础上删除40 150 1 50 x 2 8 x 20 x 1 30 x 1 80 x 2 35 x 40 x 1 60 x 1 100 x 150x 1 50 x 2 8 x 20 x 1 35 x 1 80 x 2 30 x 40 x 1 60 x 1 100 x 1 45 x (2) 18 1 8 x 1 50 x 1 30 x 1 80 x 2 20 x 35 x 1 60 x 1 100 x 1 45 x 【解析】将关键字k插入到B-树中的过程分两步完成: (1)利用B-树的查找算法找出该关键字的插入结点(注意B-树的插入结点一定是叶子结点)。 (2)若该结点关键字个数n<m-1,说明该结点还有空位置,直接把关键字k插入到该结点的合适位置上;若该结点关键字个数n=m-1,说明该结点已没有空位置,插入后需按以下方法把该结点分裂成两个结点: 分配一新结点,把需分裂结点上的关键字从中间位置(即ém/2ù处)分成两部分,左部分所含关键字放在旧结点中,右部分所含关键字放在新结点中,中间位置的关键字连同新结点的存储位置插入到父亲结点中。如果父结点的关键字个数也超过M-1,则要再分裂,再往上插,直至这个过程传到根结点为止。 在B-树上删除关键字k的过程分两步完成: 1)利用前述的B-树的查找算法找出该关键字所在的结点; 2)在结点上删除关键字k分两种情况:一种是在叶子结点上删除关键字;另一种是在非叶子结点上删除关键字; 在非叶子结点上删除关键字的过程: 假设要删除关键字key[i],在删去该关键字后,以该结点ptr[i]所指子树中最小关键字key[min]来代替被删关键字key[i]所在的位置,然后再以指针ptr[i]所指结点为根结点查找并删除key[min],这样也就把再非叶子结点上删除关键字k的问题转化成了在叶子结点上删除关键字key[min]的问题; 在B-树的叶子结点上删除关键字共有以下三种情况: 假如被删结点的关键字个数大于Min,说明删去该关键字后该结点仍满足B-树的定义,则可直接删去该关键字; 假如被删结点的关键字个数等于Min,说明删去关键字后该结点将不满足B-树的定义,此时若该结点的左(或右)兄弟结点中关键字个数大于Min,则把该结点的左(或右)兄弟结点中最大(或最小)的关键字上移到双亲结点中,同时把双亲结点中大于(或小于)上移关键字的关键字下移到要删除关键字的结点中,这样删去关键字k后该结点以及它的左(或右)兄弟结点都仍旧满足B-树的定义 假如被删结点的关键字个数等于Min,并且该结点的左右兄弟结点中关键字个数均等于Min,这时,需把要删除关键字的结点与其左(或右)兄弟结点以及双亲结点中分割二者的关键字合并成一个结点.如果因此使双亲结点中关键字个数小于Min,则对此双亲结点作同样的处理,以致于可能直到对根结点作这样的处理而使整个树减少一层.

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档