1
while(element != null)
{
    //temp = element (useless)
    element = element.node;

    //can't do (element.node).method();
    //neither temp.method();
}

LinkedList をトラバースするには、上記を実行します。ただし、以前のノードに戻りたい場合はどうすればよいですか? それは可能ですか?ノードを一時変数に格納することを考えましたが、一時変数はオブジェクトではなくノードの値のみを格納するため、LinkedList のノードを変更することはできません。

非動的データ構造 (配列) の操作に慣れていたので、LinkedList の操作がこれほど難しいとは思いませんでした。

4

2 に答える 2

0

ジミー・リーが上で述べたように、双方向リンクリストは古典的なアプローチです。「興味深い」ノードへの参照を保存することもできます。または、リストをトラバースするときにリンクが反対方向に進む新しいリンク リストを作成することもできます。最後に、リストをトラバースするときにリンクを単純に逆にするという 1 つのトリックがありますが、これにより元のリストが変更されます。

于 2013-03-30T23:06:28.790 に答える
0

「双方向リンクリスト」と呼ばれる関連データ構造があり、次の要素へのポインターを格納するだけでなく、前の要素へのポインターも格納します。このようにして、リストを下に移動するだけでなく、元に戻すこともできます。これはあなたの目的に役立ちますか?

また、一時変数を使用するというあなたの提案に応えるために、保存しているデータが(プリミティブではなく)オブジェクトであり、必要な変更がオブジェクトの変更である限り、実際には機能すると思いますオブジェクトの再割り当てではなく。

于 2013-03-30T23:03:28.137 に答える