B-树与B+树

B-树与B+树

B-树

B-树(Balance Tree)就是B树(多路搜索树——不是二叉

B-树的性质

一个m阶的B树具有如下几个特征:

1、根结点至少有两个子女

2、每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m

3、每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m

4、所有的叶子结点都位于同一层

5、每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。

B-树

如上图为3阶B-树,9是[2,6]与[12]的划分,[2,6]中2是[1]和[3,5]的划分,6是[3,5]和[8]的划分……

B+树

B+树是B-树的变体,也是多路搜索树

B+树的性质

一个m阶的B+树具有如下几个特征:

1、有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点

2、所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。

3、所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

B+树

如上图:

中间结点元素的数目与其子节点数目相同,且每一个对应的都是相应子节点的最大值

所有数据都保存在叶子结点,且按照顺序排列

B*树

是B+树的变体,在B+树的基础上,在中间结点增加指向兄弟的指针

B*树

总结

B+树要查询全部数据,只查询叶子结点即可,B-树要中序遍历

B+树查询区间更方便

在B+树中查询不管成不成功,都要到叶子结点

B-树主要用于文件系统及部分数据库(MongoDB)

大部分关系数据库使用的B+树(Mysql)

什么是B-树

什么是B+树

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值