アフィリエイト広告を利用しています
最新記事
カテゴリアーカイブ

2019年08月01日

Stack(スタック)は後入れ先出しLIFO

Stack(スタック)は後入れ先出しLIFO

スタックは最初に格納されたものが最後に出て最後に格納されたものが最初に出ます。
日本語で書くと「後入れ先出し」、英語で書くと「Last-In First-Out」。
これを一般的に「LIFO」と書いたり、言ったりします。

イメージ的にはメスシリンダーにピンポン玉を入れていくと
ピンポン玉の上に、ピンポン玉が重なっていくので
必然的に、最初に入れたピンポン玉は最後に取り出すことになります。
逆に、最後に入れたピンポン玉も必然的に、最初に取り出すことになります。

スタックに格納する順番と取り出しの順番は逆になります。
それを確認するためのプログラムを難しいことは省いて、簡単に書くとこんな感じ。


class Demo{
 public static void main(String[] args) {

  //配列を宣言
  String[] str = {"ミカン","リンゴ","イチゴ"};

  //空のスタックの作成
  Stack<String> stack = new Stack<String>();

  /*empty()でスタックが空かどうかを調べてスタックが空なら
  push()で配列の要素をスタックに格納*/

  if(stack.empty()){
   for(int i = 0; i < str.length; i++) {
    stack.push(str[i]);
   }
  }

  /*empty()でスタックが空かどうかを調べて空でなかったら
  pop()で格納されているものを取り出します。*/

  while(!stack.empty()) {
   System.out.println(stack.pop());
  }
 }
}


===== 実行結果 =====

イチゴ
リンゴ
ミカン

====================

ミカン、リンゴ、イチゴの順番で格納したものが
取り出す時には逆になっているのが分かるかと思います。

地球の末路!?




検索