アルゴリズムとプログラミング

平成24年度 春期 基本情報技術者試験 午前 問6

十分な大きさの配列 A と初期値が 0 の変数 p に対して,関数 f(x) と g() が次のとおり定義されている。配列 A と変数 p は,関数 f(x) と g() だけでアクセス可能である。これらの関数が操作するデータ構造はどれか。
function f(x) { p = p+1; A[p] = x; return None; } function g() { x = A[p]; p = p−1; return x; }
  • ア キュー
  • イ スタック
  • ウ ハッシュ
  • エ ヒープ

出典:平成24年度 春期 基本情報技術者試験 午前 問6

答えと解説を見る

正解:イ

覚える知識

スタックのpush/popトレース

スタックは最後に格納したデータを最初に取り出す後入れ先出し(LIFO)のデータ構造である。

この問題で必要なこと

f(x)はpをインクリメントして格納、g()は読み出してデクリメントする後入れ先出しなのでスタック。

ひっかけ

キューはFIFO、ヒープは優先度付き木構造であり、操作の向きで混同させる。

この知識の出題:本試験系 5 回・免除試験 4 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「スタックとキュー(LIFO と FIFO)」で学ぶ

同じ知識の過去問