数据结构与算法-查找.ppt

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

cfjrdeghiklmnpstuxabcfjmrdeghiklstuxabnpcfdeghiklstuxabnpjmr(20)重申:①当一结点分裂时所产生的两个结点大约是半满的,这就为后续的插入腾出了较多的空间,尤其是当m较大时,往这些半满的空间中插入新的关键字不会很快引起新的分裂;

②向上插人的关键字总是分裂结点的中间位置上的关键字,它未必是正待插入该分裂结点的关键字。因此,无论按何次序插入关键字序列,树都是平衡的。首先执行插入操作以确定可以插入新关键字的叶结点p。如果在结点p上插入新关键字是结点p的关键字达到m,则需要分裂结点p。否则,只需将新结点p写入磁盘上,完成插入操作。分裂节点:假定插入新关键字后,结点p具有如下结构:m,A0,(K1,A1),(K2,A2),……,(Km,Am),且KiKi+1,0≤i<m分裂后,形成具有如下格式的两个结点p和q:结点p:m/2,A0,(K1,A1),……,(Km/2-1,Am-1)结点q:m-m/2,Am/2,(Km/2,Am/2+1),……,(Km,Am)剩下的关键字Km/2和指向新结点q的指针形成一个二元组(Km/2,q)。该二元组将被插入到p的父结点中。插入前,将结点p和q写盘。插入父结点有可能会导致这个父结点的分裂,而且此分裂过程可能会一直向上传播,直到根结点为止。根结点分裂时,创建一个只包含一个关键字的新根结点,B-树的高度增1。插入结点小结6、B-树的删除操作首先找到要删除的关键字x所在的结点z;若z不是叶结点,则用该B-树中某个叶结点中的关键字来代替结点z中的x;假定x是z中的第i个关键字(x=Ki),就可以用子树Ai中的最小关键字或者子树Ai-1中的最大关键字来替换x,而这两个关键字均在叶结点中。=〉把从非叶结点中删除x的操作转化成从叶结点中删除x的操作。【例5-16】删除5阶B-树的h、r、p、d等关键字的过程例15的过程分析:第2个删去的r不在叶子中,故用中序后继s取代r,即把s复制到r的位置上,然后从叶子中删去s;第3个删去的p所在的叶子中的关键字数目是最小值Min,但其右兄弟的关键字个数m/2-1,故可以通过左移,将双亲中的s移到p所在的结点,而将右兄弟中‘最小(即最左边)的关键字t上移至双亲取代s;当删去d时,d所在的结点及其左右兄弟均无多余的关键字,故需将删去d后的结点与这两个兄弟中的一个(图中是选择左兄弟(ab))及其双亲中分隔这两个被合并结点的关键字c合并在一起形成一个新结点(abce)。但因为双亲中失去c后关键字个数m/2-1,故必须对该结点做调整操作,此时它只有一个右兄弟,且右兄弟无多余的关键字,不可能通过移动关键字来解决。因此引起再次合并,因根只有一个关键字,故合并后树高度减少一层,从而得到上图的最后一个图。第1个被删的关键字h是在叶子中,且该叶子的关键字个数m/2-1(5阶B-树的Min=2),故直接删去即可;从叶结点p删除关键字后,分为4种不同情况分别进行处理:p同时也是根结点,若删除x后还至少剩一个关键字,写盘,结束;否则,B-树变成空树;删除x后结点p至少还有m/2-1个关键字,写盘,结束;删除x后结点p有m/2-2个关键字,其邻近的右兄弟(左兄弟)结点q至少还有m/2个关键字。假定r是p和q的父结点,设Ki是r中大于(或小于)x的最小(或最大)关键字,将Ki下移至p,把q的最小(或最大)关键字上移到r的Ki处,把q的最左(或最右)子树指针平移到p中最后(或最前)子树的指针处,在q中,将被移走的关键字和指位置有剩余的关键字和指针补齐,再将其中的关键字个数减1。将p、q、r写盘,结束;删除小结删除x后结点p有m/2-2个关键字,其邻近的右兄弟(左兄弟)结点q至少还有m/2-1个关键字。将p、q和关键字Ki合并,形成一个结点,有少于m-1个关键字。合并操作使父结点r的关键字个数减1。若r中关键字个数仍满足要求(根至少1个关键字,非根结点至少m/2-1个关键字),写盘,结束。否则,父结点r的关键字不足,若是根,其中无关键字,删除;若r不是根结点,其关键字个数应为m/2-2。要与其兄弟结点合并,并沿B-树向上进行,直到根结点的儿子被合并为止。删除小结(续)B-树的高度及性能分析B-树上操作的时间由存取磁盘的时间和CPU计算时间构成。B-树上大部分基本操作所需访问盘的次数均取决于树高h。关键字总数相同的情况下B

文档评论(0)

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

中医资格证持证人

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

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档