B树学习笔记之B树的删除

B树的下溢发生于删除关键码后违反了B树的性质 。


一. 旋转

  • 如果左右兄弟存在,则间接向左右兄弟借关键码

    

二. 合并


B树高度的减少只会发生于根节点的两个孩子合并 。

三. 实例


1. 删除249


不急于合并,先左顾右盼,向有兄弟接一个关键码。


删除操作顺利结束。

2. 删除619


664没有左兄弟,右兄弟处于即将下溢的边缘临界状态,旋转技巧已不适用,选择合并。


此时,父节点发生了下溢,继续合并。


整棵B树的高度降低了一层,这时B树高度得以下降的唯一可能。

四. 总结

B树被设计成相对矮宽,而对B树的访问是由一系列的外存操作内存操作交替组成的。有多少外存操作,就有多少内存操作。但要使外存操作的代价与内存操作的代价大致相当。B树能做到,而AVL与BBST却做不到

  • 水平方向:对应与每个节点的内部搜索,在内存(RAM)中进行。
  • 垂直方向:对应于磁盘(Disk)操作。树中每下降一层,就要付出一次IO操作的代价。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值