(20)--第6章 查找-B树数据结构.ppt

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

第7章查找

;定义;1.B-树的定义;在m阶的B-树上,每个非终端结点可能含有:

n个关键字Ki(1≤i≤n)nm

n个指向记录的指针Di(1≤i≤n)

n+1个指向子树的指针Ai(0≤i≤n);非叶结点中的多个关键字均自小至大有序排列,即:K1K2…Kn;

Ai-1所指子树上所有关键字均小于Ki;

Ai所指子树上所有关键字均大于Ki;;平衡树的特性;从根结点出发,沿指针搜索结点和在

结点内进行顺序(或折半)查找两个过程

交叉进行。;显然,关键字插入的位置必定在最下

层的非叶结点。;50;2)插入后,该结点的关键字个数n=m,

则需进行“结点分裂”,令s=?m/2?,

在原结点中保留

(A0,K1,……,Ks-1,As-1);

建新结点

(As,Ks+1,……,Kn,An);

将(Ks,p)插入双亲结点;;例如:下列3阶B-树;50;练习;和插入的考虑相反,首先必须找到待删关键字所在结点,并且要求删除之后,结点中关键字的个数不能小于?m/2?-1,否则,要从其左(或右)兄弟结点“借调”关键字,若其左和右兄弟结点均无关键字可借(结点中只有最少量的关键字),则必须进行结点的“合并”。;①假如被删结点的关键字个数大于?m/2?-1:直接删去该关键字。

;②假如被删结点的关键字个数等于?m/2?-1,此时若该结点的左(或右)兄弟结点中关键字个数大于?m/2?-1:

则借兄弟结点关键字;

把该兄弟结点中最大(或最小)的关键字上移到双亲结点中,同时把双亲结点中大于(或小于)上移关键字的关键字下移到要删除关键字的结点中。

;3;③假如被删结点的关键字个数等于?m/2?-1,并且该结点的兄弟结点(如果存在的话)中关键字个数均等于?m/2?-1:

和兄弟结点合并:

要删除关键字的结点与其左(或右)兄弟结点以及双亲结点中分割二者的关键字合并成一个结点。

如果因此使双亲结点中关键字个数小于?m/2?-1,则对此双亲结点做同样处理,以致于可能直到对根结点做这样的处理而使整个树减少一层。

;3;已知一棵3阶B-树,如下图所示。删除关键字78得到一棵新B-树,其最后一层中最右结点中的关键字是()。;试从空树开始,画出按以下次序向2-3树中插入数据的建树过程:20,30,50,52,60,68,70。如果再删除50和68,画出每一步执行后2-3树的状态。;B+树;※在B+树上,既可以进行缩小范围的查找,也可以进行顺序查找;

※在进行缩小范围的查找时,不管成功与否,都必须查到叶子结点才能结束;

※若在结点内查找时,给定值≤Ki,则应继续在Ai所指子树中进行查找;类似于B_树进行,即必要时,也需要进行结点的“分裂”或“合并”。;总结

文档评论(0)

177****2883 + 关注
实名认证
内容提供者

热爱教育,专注于教育领域创作与分享,让我们共同进步。

1亿VIP精品文档

相关文档