B树
B树是一种平衡的多路搜索树, 多用于文件系统、数据库的实现
B树的性质(m阶)
-
假设一个节点存储的元素为x
- 根节点: 1 <= x <= m -1
- 非根节点 (m/2)(向上去整) <= x <= m - 1
子节点个数: y = x + 1
添加
- 新添加的元素必定是添加到叶子节点
- 上溢: 添加后节点的元素个数超过限制
- 上溢解决: 找到中间的元素往上合并, 左右元素分裂成两个节点
删除
- 真正被删除的元素在叶子节点中
- 下溢: 删除后节点的元素个数少于限制
- 下溢解决: 兄弟节点能借元素就借, 不能借就将父节点中间元素挪下来跟左右子节点和并