这篇文章主要介绍了还不理解B树和B+树,那就看看这篇文章吧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
金九银十近段时间正值找工作的最佳时间,给粉丝们准备了一些大厂面试题想要获取相关大厂的面试题的可以点击这里来获取资料:点击这里哦!!!,暗号:CSDN
以下是部分资料截图(所有资料均已整合成文档,pdf压缩打包处理)。
正文
01 B树
在介绍B+树之前, 先简单的介绍一下B树,这两种数据结构既有相似之处,也有他们的区别,最后,我们也会对比一下这两种数据结构的区别。
1.1 B树概念
B树也称B-树,它是一颗多路平衡查找树。二叉树我想大家都不陌生,其实,B树和后面讲到的B+树也是从最简单的二叉树变换而来的,并没有什么神秘的地方,下面我们来看看B树的定义。
•每个节点最多有m-1个关键字(可以存有的键值对)。
•根节点最少可以只有1个关键字。
•非根节点至少有m/2个关键字。
•每个节点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字都大于它。
•所有叶子节点都位于同一层,或者说根节点到每个叶子节点的长度都相同。
•每个节点都存有索引和数据,也就是对应的key和value。
所以,根节点的关键字数量范围:1 <= k <= m-1,非根节点的关键字数量范围:m/2 <= k <= m-1。
另外,我们需要注意一个概念,描述一颗B树时需要指定它的阶数,阶数表示了一个节点最多有多少个孩子节点,一般用字母m表示阶数。
我们再举个例子来说明一下上面的概念,比如这里有一个5阶的B树,根节点数量范围:1 <= k <= 4,非根节点数量范围:2 <= k <= 4。
下面,我们通过一个插入的例子,讲解一下B树的插入过程,接着,再讲解一下删除关键字的过程。
1.2 B树插入
插入的时候,我们需要记住一个规则:判断当前结点key的个数是否小于等于m-1,如果满足&#x