如图所示这是一棵5阶B树。B树的根节点数量要>2
生成一颗B树
用以下数字生成一颗b树
- 超过了最大的阶数,以阶数/2向上取整来拆分b树
- 继续插入新节点
- 超过了最大的阶数,以阶数/2向上取整来拆分b树
- 继续插入
- 超过了最大的阶数,以阶数/2向上取整来拆分b树
- 继续插入
- 超过了最大的阶数,以阶数/2向上取整来拆分b树
- 继续插入
- 超过了最大的阶数,以阶数/2向上取整来拆分b树
- 超过了最大的阶数,以阶数/2向上取整来拆分b树
- b树构建完成
删除B树的节点
- 如果是叶子节点且节点数>2,直接删除。
- 如果不是则用右子树的最小节点或者左子树的最大节点来代替,举个例子,例如要删除上面b数16节点,可以把16换成左子树最大节点15或者右子树最小节点17。但是用15来替换会导致15这颗子树的节点数<2,所以只能用17来替换。
B+树
下图就是一个B+树,所有的数全部在叶子节点中。