数据结构与算法:B+树(B+Tree)介绍及其与B树比较

定义

前面介绍了B树及其基本操作,B+树是B树的一个变种。与B树一样,B+树通常用于诸如数据库磁盘文件系统辅助存储系统,辅助存储系统一般容量大,但是数据存取速度比内存慢几个数量级。B树和B+树结构减少辅存系统访问次数,从而加快整体数据存取速度。两者有一些共同点,此外,B+树还有一些新特征:

  1. 有 t 个孩子的节点有 t 个关键字(B树为 t-1 个);
  2. 所有数据都存放在叶结点,内部节点只起索引的作用(B树内部节点也会存放数据)。在B+树中只有叶结点关键字带有卫星数据(satellite information),而B树中所有结点的关键字都带有卫星数据。所谓卫星数据就是关键字指向的实际数据记录(指针);
  3. 所有叶结点构成一个有序链表
  4. 每一个父节点的关键字都出现在子结点中,是子结点的最大(最小)关键字。

下面是一个B+树结构:
在这里插入图片描述

B+树与B树比较

与B树比较,B+树右如下优势:

  1. 因为B+树内部结点不存放数据,所以可以存放更多的关键字,降低树高度,减少I/O次数;
  2. 因为B+树的所有数据都存放在叶结点,且所有叶结点形成有序链表,因此对整棵树的遍历只需要一次线性遍历叶结点即可,也便于区间查找和搜索。而B树则需要进行每一层的递归遍历。

相较于B+树,B树也有其优势:
由于B树的每一个结点都包含关键字及其卫星数据,因此经常访问的关键字可能离根结点更近(根结点通常在内存中),因此只需较少I/O次数就能访问到实际数据,更迅速。

以上就是B+树的介绍。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值