十分な大きさの配列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;
}
ア キュー イ スタック ウ ハッシュ エ ヒープ
【解説】
この2つの関数で使われている 変数 p は 現在の配列の要素数を保持している変数 で、このことを踏まえると、f(x) は、配列の最後に引数であるxを代入する関数、 g()は、配列の最後の要素を返す関数 と考えることができます。
「配列の最後にデータを追加する」 および 「最後に追加されたデータを取り出す」 という2つの操作を合わせると LIFO(Last In First Out,後入れ先出し) のデータ構造が実現されることになります。選択肢の中で LIFO のデータ構造はスタックだけなので これが正解となります。
【解答】イ







