基本情報技術者試験 過去問解説

スタックとは?基本情報技術者試験 令和2年度 科目A 修了認定試験 問7を解説

基本情報技術者試験 令和2年度 科目A 修了認定試験 問7は、スタックに関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

空の状態のキューとスタックの二つのデータ構造がある。次の手続を順に実行した場合、変数 x に代入されるデータはどれか。ここで、手続で引用している関数は、次のとおりとする。 〔関数の定義〕 - push(y):データ y をスタックに積む。 - pop():データをスタックから取り出して、その値を返す。 - enq(y):データ y をキューに挿入する。 - deq():データをキューから取り出して、その値を返す。 〔手続〕 ``` push(a) push(b) enq(pop()) enq(c) push(d) push(deq()) x ← pop() ```

この問題の出題ポイント

  • スタックの定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • 関連タグ: スタック、キュー。

選択肢

  1. a
  2. b正解
  3. c
  4. d

正解

: b

解説

push(a)→stack=[a], push(b)→[a,b], enq(pop())→stack=[a], queue=[b], enq(c)→queue=[b,c], push(d)→[a,d], push(deq())→stack=[a,d,b](b は queue から deq), x←pop()→x=b。

解き方の整理

スタックの問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連用語

関連問題

前後の問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。