定义
B树是一棵多路平衡查找树。
性质
对于一个m阶的B树
- 树中每个结点至多有m个孩子(意味着至多有m-1个关键字)
- 除根结点和叶子结点外,其他每个结点至少有ceil(m/2)个孩子(ceil(x)是向上取整)
- 若根结点不是叶子结点,则至少有两个子结点
- 所有的叶子结点都在同一层
- 每个非终端结点中包含关键信息K1、P1、K2、……,其中:
- Ki为关键字,且K(i-1)<Ki
- Pi为指向子树的根结点,且P(i-1)指向的子树的结点关键字均小于Ki,且大于K(i-1)
- 关键字的个数必须满足ceil(m/2)-1<=n<=m
如下图所示:
这是一个三阶B树
插入
首先需要明确一点,新结点都是在叶子处插入
找到合适位置后插入,若插入后叶子结点中关键字数仍<=阶数m-1,则不需要处理;否则需要进行分裂,以中间关键字上送到父结点
27
此时关键字数为3,大于阶数3-1=2,故需要分裂
如图所示,仍然需要分裂
28提到根结点仍需要分裂,最终可得到