B树和红黑树
1.B树
2.B树和红黑树的关系
3.红黑树
1.B树
B树是一种平衡的多路搜索树,多用于文件系统、数据库的实现
1.1特点:
- 1 个节点可以存储超过 2 个元素、可以拥有超过 2 个子节点
- 拥有二叉搜索树的一些性质
- 平衡,每个节点的所有子树高度一致
- 矮,查找比较次数少
1.2 n阶B树的性质
- 假设一个节点存储元素的个数为x
- 根节点: 1<= x <= n-1
- 非根节点:ceiling(n/2) -1 <=x <=n-1
- 如果有子节点,子节点数目 y= x+1
- 根节点的子节点数 2<=y<=n
- 非根节点子节点数 ceiling(n/2) <=y <=n
有个结论:eg : n=4 2<=y<=4 因此称4阶B树为 (2,4)树、 2-3-4树
1.3 B树的搜索
- 类似与BST
- 先在节点内部从小到大开始搜索元素
- 如果命中,搜索结束
- 如果未命中,再去对应的子节点中搜索元素,重复步骤 1
1.4 添加元素到B树
- 以添加76为例
添加过程中,当节点的元素个数 等于n(阶数),会产生
上溢
的现象
- 上溢过程中,可能导致父节点的个数也等于n,那么也会一直上溢,极端情况一直溢到根节点
1.5 B树删除元素
- 删除的元素在叶子节点,则直接删除就可以
- 删除的元素在非叶子节点(复杂)
- 先找到这个节点的前驱或素,覆盖所需删除元素的值
- 前驱和后继元素必定在叶子节点中
- 再把所选的前驱或后继元素删除