1

LIFO の特性に沿った「履歴」のような機能を作成しようとしています。最後の入力 最初の出力。

したがって、ユーザーは、あとがきを印刷するためにスタックに格納されるいくつかの単語を導入します。要約すると、プログラムは次のようになります。

Stack<String> history = new Stack<>();
String word = null;

while (!word.equals(exit)) {

   word = scan.nextLine();

   if (word.equals(show)) {
   
      showHistory();
   } else {
   
     history.push(word);
   }
}

関数showHistory();には次の形式があります。

for (String i : history) {
    System.out.println(i);
}

問題は、これを実行すると、ユーザーが導入した可能性のある単語が FIFO 形式で出力されることです。たとえば、ユーザーが紹介した場合:

鉛筆

シャツ

このプログラムが示す出力は次のとおりです。

鉛筆

シャツ

しかし、LIFO形式に従って、私が望む出力は次のとおりです。

シャツ

鉛筆

また、スタックが実行のどの時点でも保存しているデータを削除したくないhistory.pop();ので、間違っていなければスタック内のデータが削除されるため、使用したくありません。

これどうやってするの?

前もって感謝します。

4

3 に答える 3