从B 树理解红黑树

2020-02-14  本文已影响0人  快点给我想个名
B树

B树是一种平衡的多路搜索树,多用于文件系统、数据库的实现。
“阶”是指一个节点包含的最多子节点的个数。
m阶B树的性质(m≥2),这里假设一个节点存储的元素个数为x。
注意区分是说的节点还是说节点中存储的元素。

  1. 根节点子节点的个数 y = 2≤ x ≤ m
  2. 非根节点子节点的个数 y = ⌈m/2⌉ ≤ x ≤ m
B树的添加过程

下图展示一个3阶B树插入1至12的过程,3阶B树其实也就是2-3树。


3阶B树添加过程
B树的查找过程

比如查找元素7


3阶B树查找元素
B树的删除过程

比如删除节点8


3阶B树删除元素
红黑树
红黑树的性质

1、节点都是RED或BLACK
2、根节点是BLACK
3、叶子节点都是BLACK (叶子节点这里是指假想出来的null节点)
4、RED节点的子节点都是BLACK
5、从任一节点到叶子节点的宿友路径都包含相同数目的BLACK 节点
由于性质的约束:插入点不能为黑节点,应插入红节点,这样只会破坏性质4

红黑树和4阶B树
  1. 红黑树和4阶B树(2-3-4树)具有等价性
  2. BLACK 节点与它的RED子节点融合在一起,形成1个B树节点
  3. 红黑树的BLACK节点个数与4阶B树的节点总个数相等
  4. 综上所述红黑树节点转换成4阶B树后,节点之间的组合关系存在如下四种情况:
    • 红黑红
    • 黑红
    • 红黑
红黑树与4阶B树的等价转换
红黑树添加
红黑树删除

切记B树中的删除,最后都是删除叶子节点。
由于红黑树和4阶B树转换后,至存在四种情况。所以删除也就在这四种情况当中。

上一篇 下一篇

猜你喜欢

热点阅读