B-树的相关习题(2)

B-树(B树)的删除操作,这里只讲解删除终端结点的情况,因为删除非终端结点可以转化为删除非终端结点。

如下图3阶B树,做如下操作:

(1)删除60   (2)删除80

                

 3阶B树,m=3,除根结点外,每个结点中至少有⌈m/2⌉-1=1个关键字

(1)解:删除60

兄弟够借:结点60中只有一个关键字=⌈m/2⌉-1,该结点的右兄弟中有两个关键字,关键字个数>⌈m/2⌉-1,借用右兄弟结点中的一个关键字,采用的方法是“父子换位”以达到平衡

删除60,用其父结点中的80取代60的位置,将右兄弟中的90移到父元素的位置。

 (2)解:删除80

兄弟不够借:结点80中只有一个关键字=⌈m/2⌉-1,此该结点相邻的右兄弟中也只有1个关键字,采用的方法是“兄弟合并”,在删除该关键字的同时,将该结点剩余的关键字和指针连同双亲结点中的 一个关键字合并到(左)右兄弟结点中。

 删除80,80所在的结点的父结点与其右兄弟合并,这时父结点的关键字个数为0.破坏了B树的结构,继续整合,将50与40合并成新的结点,最终构造的B树如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值