1

これは、すべてのノードを表示する Linked List クラスの一部です。

このメソッドが行おうとしているのは、フロント (はい、head の代わりに front を使用していますが、これは問題ではありませんが、リンク リスト ベースのキューを実装しています) をポインター (この場合は "cur" と呼ばれる) に設定し、 cur の次のノードは null ではありません。そうでない場合は、要素 (株式と価格の 2 つの部分) を取得し、cur を次のノードに設定します。すすぎ、次の cur (ステップインする前) が null になるまで繰り返します。その場合、ループを終了し、最後の cur (null 別名 tail/rear の前) を出力するだけです。すべての要素を s に追加します (連結により)

public Object displayAll() {
        Node cur = front;
        Object s = null;
        while(cur.getNext() != null) {
             s += cur.getShare() + " @ " + cur.getPrice();
            cur.setNext(cur);
        }
        s += cur.getShare() + " @ " + cur.getPrice();
        return s;
}

出力: 最初の要素を無数に繰り返します。 意図した出力:繰り返しはしたくありませんが、すべてのノードのすべての要素を表示します。

私は何が欠けていますか?任意のポインタをお願いします?

4

2 に答える 2

1

cur.setNext(cur)ノードをそれ自体にリンクするように設定しているように、かなり疑わしいように見えますが、これは明らかに無限の関係です。

于 2013-10-19T04:14:49.983 に答える