令和元年度 基礎科目の一覧へ

令和元年度・基礎科目 I-2-6

スタックのPUSHとPOP

問題文をPDFで見る

解説

ポイント

スタック(後入れ先出し)にデータを出し入れしたとき,最後に取り出される値を追いかける問題です。

考え方と解き方

スタックはお皿を積み重ねたようなもので,PUSH は「いちばん上に置く」,POP は「いちばん上から1つ取る」です。

中身を,左を底・右を上として順に書き出します。

  • PUSH 1,2,3,4 のあと:[1,2,3,4]
  • POP:4 を取り出す → [1,2,3]
  • POP:3 を取り出す → [1,2]
  • PUSH 5:[1,2,5]
  • POP:5 を取り出す → [1,2]
  • POP:2 を取り出す → [1]。最後に取り出されたのは 2。答えは ② 2

ほかの選択肢

①(1):いちばん底にあり,最後まで取り出されずに残ります。

⑤(5):最後から2番目の POP で取り出されています。「最後に入れたもの」と「最後に取り出されるもの」を取りちがえないようにします。

覚えておくこと

  • スタックは後入れ先出し(LIFO)。キューは先入れ先出し(FIFO)
  • 操作を1つずつ中身を書き出して追うと確実

出典:令和元年度 技術士第一次試験 基礎科目 I-2-6(公益社団法人日本技術士会) ジャンル:情報・アルゴリズム