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

基本情報技術者試験 科目A免除 修了試験 20241208 実施分 問5

十分な大きさの配列 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 ; }
答えを選ぶ

出典:基本情報技術者試験 科目A免除 修了試験 20241208 実施分 問5(問題文は IPA の公開問題。解説は当サイト作成)

答えと解説を見る

正解:イ

覚える知識

スタックのLIFO特性(後入れ先出し)

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

この問題で必要なこと

f(x)はpをインクリメントして末尾に格納し、g()は末尾を取り出してデクリメントするので、後入れ先出し(スタック)である。

ひっかけ

キューは先入れ先出しで、取り出し位置が先頭側になる。ここでは格納も取出しも同じ添字pの位置を使う点でキューではない。

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

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

同じ知識の過去問