このアルゴリズムは教科書で見つけましたが、よくわかりません。
TRANSPLANT(T,u,v){
1 if u.p == NIL
2 T.root = v
3 else if u == u.p.left
4 u.p.left=v
5 else u.p.right == v
6 if v != NIL
7 v.p=u.p
}
p
また、ノードの中には何が入っていると思いますか?
ノードとノードを単純に比較できないのはなぜですか?
教科書からのメモ:
サブツリーを二分探索ツリー内で移動するために、 サブルーチン を定義します。サブルーチン
TRANSPLANT
は、あるサブツリーをその親の子として別のサブツリーに置き換えます。が node をルートとするサブツリーを node をルートとするサブツリーにTRANSPLANT
置き換えるu
と、 nodeu
の親は node の親になり、 node の親は最終的u
に適切な子になります。