b树
如图即为b树模型
b树其实就是一颗多路平衡查找树
- 每个节点都可以存储键值对
- 根节点最少有一个键值对
- 每个节点都有索引和数据 (key和value)
- 有序,顺序为左——中——右
- 所有叶子节点都位于同一层,或者说根节点到每个叶子节点的长度都相同。
以上为b树的特点。
下面简单介绍一下b树的插入规则
假设此b树为m路搜索树,那么判断当前结点key的个数是否小于等于m-1,如果满足,直接插入即可,如果不满足,将节点的中间的key将这个节点分为左右两部分,中间的节点放到父节点中即可。
举个例子
b+树
以上即为b+树的模型
b+树跟b树其实非常相似,其实就是b树的变形,除了多路搜索之外只需要记住以下几点即可
- b+树有两种类型节点即:叶子节点和非叶子节点,非叶子节点不存储数据只存储索引(冗余),只有叶子节点存储数据
- 非叶子节点的key都按从小到大排列,即 左——中——右 自小变大顺序,叶子节点中key的记录也是从左到右大小排序
- 每个叶子节点都存有相邻叶子节点的指针
- 父亲点存有右孩子的第一个元素的索引