平成24年度 秋期 午前 問5
基礎理論
スタックに関する問題
配列を用いてスタックを実現する場合の構成要素として,最低限必要なものはどれか。
- アスタックに最後に入った要素を示す添字の変数
- イスタックに最初に入った要素と最後に入った要素を示す添字の変数
- ウスタックに一つ前に入った要素を示す添字の変数を格納する配列
- エスタックの途中に入っている要素を示す添字の変数
答えと解説を見る
✓ これが正解アスタックに最後に入った要素を示す添字の変数
解説
出入口が一つなので、覚える位置も一つで足ります。
この設問は、最低限という条件が効く型です。スタックは後から入れたものを先に取り出すデータ構造で、出し入れする場所が片側の一つしかありません。ですから配列で作るとき、覚えておくべき位置も一つで済みます。最後に入った要素がどこにあるかを示す添字を一つ持っておけば、入れるときはその添字を一つ増やしてからその位置に書き、取り出すときはその位置を読んでから添字を一つ減らせばよいからです。配列そのものと、この添字が一つ。これだけで、入れる操作と取り出す操作の両方が書けます。ここが判断の軸になります。動く作りかどうかではなく、それ以上減らせないかどうかで選んでください。余計なものを足した構成でも動きはしますが、最低限という問いには当てはまりません。逆に言えば、出し入れの場所が両端にある構造なら位置を二つ覚える必要が出てきます。出入口がいくつあるかを先に確かめると、この種の問いは迷わなくなります。
ほかの選択肢はなぜ違うのか
- イスタックに最初に入った要素と最後に入った…:位置を示す変数を二つ持つ構成です。両端から出し入れする構造ならこの形が必要ですが、片側だけで済む構造では、先に入った要素の居場所を使う場面がありません。
- ウスタックに一つ前に入った要素を示す添字の…:添字をしまうための配列をもう一本用意する構成です。要素同士をつなぎ合わせて並べる作り方に近く、配列に順番に詰めていく作り方では位置を足し引きするだけで足ります。
- エスタックの途中に入っている要素を示す添字…:途中に入っている要素の居場所を覚える構成です。出し入れは片側の端でしか起こらないため、真ん中を指す変数を持っても出番が来ません。
出典:平成24年度 秋期 応用情報技術者試験 午前 問5
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)