BSTからノードを削除するにはどうすればよいですか?
Dr.Schemeでそれを行うためのアルゴリズムが必要です。
基本的に、現在持っている BST を投げて、エレメントなしで新しい BST を作成します。
これは、ツリーを再帰的に下降することで実行できます。項目がルート データムより小さい場合は、ルートと大なり分岐が現在のものからコピーされた BST を作成しますが、小なり分岐は再帰呼び出しの結果です。
ノードを追加する方法と非常に似ていますが、探していたものに到達したら、その下にある 2 つの BST をマージして結果を返します。すでにそれを行う方法については、確かに既存の質問があります。
二分探索木が内容がリーフのみの単純なコンス セルを使用すると仮定し、宿題に取り組んでいると仮定すると、set-car!
またはを使用set-cdr!
してコンス セルの内容を変更できます。