性质
- 平衡性:所有叶子节点都在同一层
- 多路:m 阶 B 树
最多: m 个分支,m-1 个元素
最少: 根节点 2 个分支 1个元素
其他节点 ⌈ m / 2 ⌉ \lceil m/2\rceil ⌈m/2⌉ 个分支 ⌈ m / 2 ⌉ \lceil m/2\rceil ⌈m/2⌉ − 1 -1 −1 个元素 - 有序:结点内有序,左子树<根<右子树
插入过程
-
定位插入点:从根节点开始,逐层向下遍历B树,找到要插入的键值应该插入的位置。
-
在插入点插入后,检查叶子节点是否已满。如果已满,则需要进行分裂操作。
-
分裂操作:如果叶子节点已满(m 个点即满),将其分裂。中间的点(第 ⌈ m / 2 ⌉ \lceil m/2\rceil ⌈m/2⌉ 个点)上升为子树根节点(插入到未分裂前的根节点当中),中间点左右两端的点变为中间点的键值所在点的左右子树。若未分裂前的根节点被插入后满了,继续重复该操作