現時点では、演習としてリンクされたリストで遊んでいます。
Cracking The Coding Interview本で私が見ている例には、LinkedList (マネージャー) クラスがなく、Node だけがあり、メイン関数のヘッド Node にしがみついています。
私は C++ の実装を調べましたが、ほとんどは C++ よりも C スタイル、つまりオブジェクト指向ではないようです。それらは構造体を使用し、クラスは使用せず、リストを削除するための静的メソッドを持っています。これを呼び出すことを明示的に覚えておく必要があります。メモリの割り当て解除を処理する適切なデストラクタを備えた適切な RAII (Resource Acquisition Is Initialization) スタイルの C++ クラスを作成し、Node クラスのみ (LinkedList クラスは使用しない) を使用したいと考えていました。
私がこれを機能させる唯一の方法は、Node のデストラクタが次の Node があればそれを削除することでした。リンクされたリスト。
私の質問を要約すると:
- C++ でリンク リストを処理するオブジェクト指向クラスを作成する場合、デストラクタでリスト ノードの削除を処理する LinkedList (マネージャ) クラスが必要ですか?
- そうでない場合、ノードの破壊にどのように対処しますか?
ありがとう!