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-树与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+树查询区间更方便

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

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

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

什么是B-树

什么是B+树

    原文作者:B树
    原文地址: https://blog.csdn.net/H0_0P/article/details/80464575
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞