BST内の要素のサクセサは、インオーダートラバーサルによって決定されたソートされた順序での要素のサクセサです。各ノードがその親ノードへのポインターを持っているときに後継者を見つけることは、CLRSのアルゴリズム教科書(MITプレスによるアルゴリズムの紹介)に示されています。
ここでサクセサを見つけるという考え方は、ノードの右側のサブツリーx
が空でない場合、のサクセサはx
右側のサブツリーの最小要素です。x
それ以外の場合、後継者は、左の子がの祖先でもある最下位の祖先ですx
(ノードがそれ自体の祖先であると想定)。
親ノードへのポインタを使用せずに後継者を見つけることはできますか?
ツリーノードにこのポインタがない場合があります。数時間苦労しましたが、正しいコードを書くことができません。