B-树 和 B+树

B-树 和 B+树

B-树

B-树是什么

  1. 每个结点最多有m个分支(子树);而最少分支数要看是否为根结点,如果是
    根结点且不是叶子结点则至少有2个分支,非根非叶结点至少有⌈m/2⌉个分支。(向上取整 e.g. 5/2=3)

  2. 有n(k≤n≤m)个分支的结点有n-1个关键字,它们按递增顺序排列。k=2(根结点)或⌈m/2⌉(非根结点)。

  3. 结点内各关键字互不相等。

  4. 叶结点处于同一层;可以用空指针表示,是查找失败到达的位置。

图为5阶B-树
在这里插入图片描述

B-树的查找

存在子分支
不存在子分支
查找当前节点
查找成功
是否存在数据
根据大小前往
指定子分支
查找失败

B-树的插入

查找插入位置并插入
当前语法树是否合法
插入成功
变形
如何变形

以下演示为5阶B-树演示
在这里插入图片描述

B-树的删除

以下可能有误 理解不深刻

查找删除位置进行删除
当前语法树是否合法
删除成功
变形
如何变形

借值: 将其转移到自己的所在的节点

有分支
借左分支的最大值
当前语法树是否合法
当前语法树是否合法
借右分支的最小值
删除
无分支
没分支就借兄弟节点 

B+树

B+树是B树的一种变形形式,B+树上的叶子结点存储关键字以及相应记录的地址,叶子结点以上各层作为索引使用。一棵m阶的B+树定义如下:

  1. 每个结点至多有m个子女
  2. 除根结点外,每个结点至少有[m/2]个子女,根结点至少有两个子女
  3. 有k个子女的结点必有k个关键字

B+树的查找与B树不同,当索引部分某个结点的关键字与所查的关键字相等时,并不停止查找,应继续沿着这个关键字左边的指针向下,一直查到该关键字所在的叶子结点为止。

B+树是B树的一种变形,比B树具有更广泛的应用,m阶B+树有如下 特征 :

  1. 每个结点的关键字个数与孩子个数相等,所有非最下层的内层结点的关键字是对应子树上的最大关键字,最下层内部结点包含了全部关键字
  2. 除根结点以外,每个内部结点有⌈m/2⌉到m个孩子
  3. 所有叶结点在树结构的同一层,并且不含任何信息(可看成是外部结点或查找失败的结点),因此,树结构总是树高平衡的

在这里插入图片描述

和B-树的区别

叶子节点存储所有关键字 B+树上增加了顺序访问指针,也就是每个叶子节点增加一个指向相邻叶子节点的指针 (数据库系统实现索引的首选数据结构)

除了叶子节点 其他节点的关键字只起到索引的作用

一个关键字对应一个分支 分支≤父关键字

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值