B树(B-tree、B-树)
B树是一种平衡的多路搜索树,多用于文件系统,数据库的实现。
B树的特点
- 1个节点可以存储超过2个元素、可以拥有超过2个子节点
- 拥有平衡二叉搜索树的一些性质
- 平衡、每个节点的所有子树高度一致
- 比较矮
m阶B树的性质(m>=2)
m阶B树一个节点最多拥有m-1个元素,最多有m个子节点
B树VS二叉搜索树
B树和二叉搜索树,在逻辑上是等价的。
二叉搜索树多代节点合并,可以获得一个超级节点
- 二叉搜索树二代合并的超级节点,最多拥有3个节点,拥有4个子节点(至少是4阶B树)
- 二叉搜索树三代合并的超级节点,最多拥有7个节点,拥有8个子节点(至少是8阶B树)
- 二叉搜索树n代合并的超级节点,最多拥有2n - 1个节点,拥有2n 个子节点(至少是2n阶B树)
- m阶B树,最多需要log2 m代合并
搜索
添加
添加——上溢的解决(假设5阶)
删除——非叶子节点
删除——下溢的解决
上溢传播到根节点,会使B树变高。
下溢传播到根节点,会使B树变矮。
4阶B树
4阶B树的性质:
- 根节点能存储的元素个数:1 <= x <= 3
- 非根节点能存储的元素个数:1 <= x <= 3
- 根节点的子节点个数:2<= y <= 4
- 非根节点的子节点个数:2<=y <= 4