题目内容
(请给出正确答案)
[主观题]
在从m阶B树删除关键码的过程中,当从一个结点中删除掉一个关键码后,所含关键码个数等于()个,并且它的左、右兄弟结点中的关键码个数均等于(),则必须进行结点合并。
在从m阶B树删除关键码的过程中,当从一个结点中删除掉一个关键码后,所含关键码个数等于()个,并且它的左、右兄弟结点中的关键码个数均等于(),则必须进行结点合并。
查看答案
如果结果不匹配,请 联系老师 获取答案
A、p
B、p-1
C、p-2
D、p-3
A、2(「m/2)h-1-1
B、2(「m/2)h-1-2
C、2(「m/2)h-1
D、2(「m/2)h--2
A、
B、
C、
D、
A、①②③
B、②③
C、②③④
D、③
考查任意阶的B-树T。
a)若T的初始高度为1,而在经过连续的若干次插入操作之后,高度增加至h且共有n个内部节点,则在此过程中T总共分裂过多少次?
b)在如上过程中,每一关键码的插入,平均引发了多少次分裂操作?
c)若T的初始高度为h且含有n个内部节点,而在经过连续的若干次删除操作之后高度下降至1,则在此过程中T总共合并过多少次?
d)设T的初始高度为1,而且在随后经过若干次插入和删除操作——次序任意,且可能彼此相间。试证明:若在此期间总共做过S次分裂和M次合并,且最终共有n个内部节点,高度为h,则必有:S-M=n-h。
为提高空间利用率,可将内部节点的分支数下限从[m/2]提高至[2m/3]。于是,一旦节点v发生上溢且无法通过旋转完成修复,即可将v与其(已经饱和的某一)兄弟合并,再将合并节点等分为三个节点,采用这一策略之后,即得到了B-树的一个变种,称作B'-树(B'-tree)。
当然,实际上不必真地先合二为一,再一分为三。可通过更为快捷的方式,达到同样的效果:从来自原先两个节点及其父节点的共计m+(m-1)+1=2m个关键码中,取出两个上交给父节点,其余2m-2个则尽可能均衡地分摊给三个新节点。
a)按照上述思路,实现B'-树的关键码插入算法;
b)与B-树相比,B'-树的关键码删除算法又有何不同?
A、m
B、m-l
C、m+1
D、m-2