算法导轮之B树的学习

本文是关于B树的总结,详细介绍了B树的定义,包括节点属性和关键字规则。接着阐述了B树的插入过程,涉及节点分裂和插入策略。最后讨论了B树的删除操作,包括不同情况下的处理方式,如内部节点和叶节点的关键字删除策略。
摘要由CSDN通过智能技术生成

最近学习了算法导轮里B树相关的知识,在此写一篇博客作为总结。


1.引言

B树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡搜索树。B树类似于红黑树,但它与红黑树最大不同之处在于B树的节点可以拥有很多孩子,因此B树的高度会比红黑树小很多,也因此B树在磁盘I/O方面表现要比红黑树好。(对于磁盘操作最耗时的部分在于磁盘读写,而每次读取一个新的树的节点就必须进行一次磁盘读取,因此节点较大、树高度较小的B树会进行较少的磁盘I/O操作)

2.B树的定义

一颗B树的定义如下:
  1. 每个节点x均有如下属性:
    • n表示存储在该节点的关键字个数
    • n个关键字本身key1、key2……keyn以非降序存放,即key1 <= key2 <= …… <= keyn
    • 一个leaf布尔值表示该节点是否为叶节点
  2. 每个内部节点包含了n+1个孩子,叶节点没有孩子
  3. 关键字keyi对存储在各子树中的关键字范围加以分割:即比keyi小的元素在其左子树,比keyi大的元素在其右子树
  4. 每个叶节点具有相同的深度
  5. 每个节点包含的关键字个数有上界与下界。我们定义B树的最小度数为t,则除根节点外的每个节点至少有t-1个关键字,每个节点最多有2t-1个关键字(即每个节点最少有t个孩子,最多有2t个孩子)(当一个节点有2t-1个关键字时,我们称它为满的)。
B树的示意图如下:
B树
上图是一个最小度数为2的B树,因此每个节点拥有1个、2个或3个元素,拥有2个、3个或4个孩子,也被称为2-3-4树。
根节点只有一个元素,因此它拥有两个孩子;两个孩子分别拥有3个和2个元素,因此他们分别拥有4个和3个孩子。
看到DEF叶节点位于关键字C与G的中间,表明了关键字对于存储在各子树中的关键字范围进行了分割,其余同理。

3.B树的插入

要讲到树,就不得不提树中关键的插入与删除操作,这里我们先总结B树的插入操作。
当我们往B树中插入一个新的关键字时,由于B树节点的关键字是受到限制的,因此
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值