基本情報技術者試験 2012年度 = 平成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;
  }

ア キュー イ スタック ウ ハッシュ エ ヒープ

解答



解説

 関数f(x)は、pの値を1だけ増やしてからA[p]にxを代入する関数であり、関数g()は、A[p]の値を取り出してからpの値を1だけ減らした上で取り出した値を返す関数です。
 データを入れる操作と取り出す操作の両方を、配列の末尾側で行っています。このことから、これらの関数が操作するデータ構造はスタックstack)であることが分かります。
 スタックは、データをLIFOLast-In First-Out)で蓄えます。ちょうど、机の上に重ねた皿のように、最も上に重ねた皿を優先的に取り出すのと同様です。
 データを入れる操作をプッシュpush)、データを取り出す操作をポップpop)といいます。
 関数fが行う操作がプッシュで、関数gが行う操作がポップです。


BohYoh.comトップページへ