データ構造とアルゴリズム
空のスタックに対して、push 1、push 2、pop、push 3、push 4、pop、pop の順に操作した。pop で取り出された値を順に並べたものはどれか。
- A1, 2, 3
- B2, 3, 4
- C2, 4, 3
答えと解説を見る
正解:C. 2, 4, 3
スタックは最後に入れたものを最初に取り出す後入れ先出し(LIFO)の構造です。push 1、push 2 の後の pop では一番上の2が出て、1が残ります。続いて3、4を積むと上から4、3、1の順に並ぶので、2回の pop で4、3の順に出ます。したがって取り出された順は2、4、3で、最後にスタックには1が残ります。1、2、3は先に入れたものから出すキュー(先入れ先出し、FIFO)として扱った場合の順です。
- A. 入れた順に取り出すキュー(FIFO)として扱った場合の順です。
- B. 4と3の順が逆です。後から積んだ4が先に出ます。
- C. 正しい。後から入れたものが先に出るので、2、4、3の順になります。