- 赤ノードのとき
- 赤ノードの子を持つ黒ノードのとき
- 赤ノードの子を持たない黒ノードのとき
赤ノードなので ○a は黒ノードの左のはず。このとき取り除いた後も 6つの left-leaning 赤黒木の条件を全て満たしていることがわかる。
2.の取り除くノード ●a が赤色の子ノード ○z を持つときを考えてみる。
●a が取り除かれたことで ○z の葉と根までの黒ノード数が一つ減って ○z-1 と変わって、木の枝が切れてしまっている状態となる。
まず ○z-1 を ●a のあった位置に移す。
次に ○z-1 の色を黒に変ると ○z-1 の葉から根までの間の黒ノードの数が一つ増えて ●z となり 6つの left-leaning 赤黒木の条件を満たすようになることがわかる。
最後に 3.の赤ノードの子を持たない黒ノードを取り除くときについて 4つの場合に分けてみた。
- 赤ノードの右の黒ノードを取り除くとき
- 赤ノードの左の黒ノードを取り除くとき
- 黒ノードの右の黒ノードを取り除くとき
- 黒ノードの左の黒ノードを取り除くとき