B树与B+树

概述

B树就是平衡树(balancetree)

B树与B+树的对比

名称B树(多路平衡查找树)B+树
示意图
原型由二叉树演变而来的,m查找树由分块查找演变而来的,多级分块查找
关键字根节点关键字范围【1,m-1】根节点关键字范围【2,m】
分支数n个关键字对应,n+1个分支n个关键字对应,n个分支
分支范围根节点【2,m】,其他节点【m/2,m】
记录信息所有节点都有只有叶子节点包含
顺序查找不支持支持
查找过程可能停留在任意节点,查找不稳定结束时只能停留在叶子节点,查找速度稳定
原则每个节点内部有序,树始终平衡。应用在关系型数据库的索引

 B树的插入

如果插入导致字数上限,那么就会从中间位置分裂成两个部分,右边部分放新结点,左边部分放原节点,中间位置放入原节点。

如下图,要插入90 

插入90之后 

B树的删除

删除的关键字:

判断是否低于下限(即上关键字最多m-1,最少m/2)

不是,直接删除

是,从左右兄弟那借

判断删除关键字是否在终端节点

是,判断下限,再删除

不是,将后继节点移动到需要删除的节点处,再删除。

ps:那借了兄弟节点之后,还有节点存在小于m/2的,又需要往大于m/2的节点处借。

这篇博文讲的很详细,可以直接看B树B+树,参考博文

 简而言之,删除树的操作就是,根节点直接删,不够左右借,借不够,把自己合并过去。删除不是根节点,需要选节点来替代被删除的节点,即可删除。

总结

  • 单一节点存储元素更多,使得每一次查询能拿到更多的数据。所以常用于数据库底层结构。
  • B+树的所有查询都会查询到叶子节点,所以是稳定的。
  • 删除和插入操作,需要时刻满足m/2<节点数量<m-1,记住不够借,借没有合并。

参考博文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybbgrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值