十分な大きさの配列 A と初期値が 0 の変数 p に対して,関数 f(x) と g() が次のとおり定義されている。配列 A と変数 p は,関数 f と g だけでアクセス可能である。これらの関数が操作するデータ構造はどれか。
ア |
キュー |
イ |
スタック |
ウ |
ハッシュ |
エ |
ヒープ |
解答・解説を見る
解答:イ
- 関数 f(x)
- 変数 p の値を1加算し、配列 A に x を格納する処理である。
この処理は変数pをスタック変数,配列要素A[p]をスタックとして,スタックにデータxの値をPUSHする処理と考えることができる。
- 関数 g()
- 配列 A から取り出した値を変数 x に格納し、変数 p の値を1減算する。
その後、変数xの値を戻り値として返す処理である。
この処理は変数pをスタック変数,配列要素A[p]をスタックとして,スタックからデータをPOPする処理と考えることができる。
よってスタックによるデータ構造であることが分かる。正解はイである。