私は学校の課題のために二重リンク リストの独自の実装を作成してNode
おり、リスト クラス内で呼び出される内部ノード クラスを使用しています。これは、相互にリンクされているリスト ノードを表します (リンク リストの場合は通常そうです)。
class DoublyLinkedList<T>
{
class Node
{
T obj;
}
}
多くのノードを持つ大きなリストの場合、各Node
オブジェクトが親リスト クラスのインスタンスを参照する可能性があるため、それはかなりのオーバーヘッドと最適ではない設計でしょうか? 非静的クラスとして持つと確かに便利です。ノードは親リストfirst
とlast
参照を変更する可能性があり、カプセル化に最適であることがわかりました。
静的にするNode
と、(リストへの明示的なメンバー参照がなければ) 親リストを操作するために使用できなくなり、first
すべてlast
逆からアプローチする必要があります-リストは独自のメソッドを介してノードを割り当てて操作します、つまり、それらを相互にリンクし、リンクを解除して、その値first
とlast
値を自然に調整します。
優れた設計と学習のために、 The Smart Thing To Do (c) (ある場合)とは何かを知りたいです。