赤黒木 (31)

削除処理について確認など。
4[ab] のケイスについては sibling が赤なんですが、この時点で child は黒限定だし、parent も黒です (sibling が赤ってことはその親は黒)。
しかも、ぱっと見で赤い sibling な node は子供が居ないと削除前の状態が平衡かどうかという観点でマズいですね。例えば

  B:b
B:a
    B:d
  R:c
    B:e

な部分木の b な要素を削除する時、sibling な赤い要素は基本的に両方子供が居るのは前提となるはず (赤い要素は子供を持たないか両方に子供が居るかどちらかの状態)。そして上の状態から b の要素を削除したら、これは 4a なケイスとして以下な状態になります。

  R:a
    B:d
B:c
  B:e

parent は a の要素で sibling が d の要素に書き換えられます。で、6 のケイスな部分木になってしまってますね。
うーん、あるいは以下な部分木の

  B:b
R:a
  B:c

どちらか片端を削除、というのも 6 になるのか。c な要素を削除するとこうなります。

  R:b
B:a

あ、あとは 5 のケイスというのは以下なのか。

  B:b
B:a
  B:c

全部黒。ただしこのケイスは slibing が赤になってしまい

B:a
  R:c

バランスが崩れるので上に回って平衡加減を調整しなければならないのか。

うーん

極端な話、ケイス的にこれだけ、な気がしてきつつあるんですが、寝かせて確認してみます。