B树的增删改查

本文详细介绍了B树的基本概念,包括其结点结构、阶数定义以及非根非叶结点的分支数量要求。通过实例展示了4阶B树的特征,同时讲解了B树的查找、插入和删除操作。在查找过程中,B-树采用多路查找提升效率。插入操作中,当结点关键字超过规定个数时需要进行结点拆分。删除操作涉及查找、替换、借值或合并策略,确保B树保持平衡。最后讨论了B-树的高度及其性能分析,指出其在磁盘I/O操作中的优势。
摘要由CSDN通过智能技术生成

B-树,即为B树。因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,B-tree就是指的B树

B-树容易让人误解,建议大家用B树称呼, 本文以下直称B树

对概念不理解的可以参考 我的另一篇介绍B树概念和应用的博客: 

https://blog.csdn.net/q5706503/article/details/84729768

B树的基本概念

B树中结点允许拥有孩子结点个数的最大值成为B树的阶,通常用m表示,从查找效率考虑,一般要求m>=3。

一棵m阶B树或者是一棵空树,或者是满足以下条件的m叉树:

  • 每个节点最多有m个孩子(分支)。
  • 而最少分支数要看是否为根结点,如果是根结点且不是叶子结点,则至少要有两个分支,非根非叶结点至少有ceil(m/2)个分支,这里ceil代表向上取整。
  • 如果一个结点有n-1个关键字,那么该结点有n个分支。这n-1个关键字按照递增顺序排列。
  • 结点内各关键字按从小到大排列。
  • 叶子结点处于同一层;可以用空指针表示,是查找失败到达的位置。

每个结点的结构为:

n k1 k2 ... kn
p0 p1 p2 ... pn

其中,n为该结点中关键字的个数;ki为该结点的关键字且满足ki<ki+1;pi为该结点的孩子结点指针且满足pi所指结点上的关键字大于ki且小于ki+1,p0所指结点上的关键字小于k1,pn所指结点上的关键字大于kn。

B-树是平衡m叉查找树,但限制更强,要求所有叶结点都在同一层。

举个例子:

这是一个4阶B树(m=4)

B tree

分析解释: 

  • 结点的分支数等于关键字数+1,最大的分支数就是B树的阶数,因此m阶的B树中结点最多有m个分支,所以可以看到,上面的一棵树是一个4阶B树
  • 因为上面是一棵4阶B树,所以非根非叶结点至少要有ceil(4/2)=2个分支。根结点可以不满足这个条件,图中的根结点有两个分支
  • 如果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值