平成30年度 秋期 (特別措置試験) 問76
アルゴリズムとプログラミング
スタックからのデータの取出し方
複数のデータが格納されているスタックからのデータの取出し方として,適切なものはどれか。
- ア格納された順序に関係なく指定された任意の場所のデータを取り出す。
- イ最後に格納されたデータを最初に取り出す。
- ウ最初に格納されたデータを最初に取り出す。
- エデータがキーをもっており,キーの優先度でデータを取り出す。
答えと解説を見る
✓ これが正解イ最後に格納されたデータを最初に取り出す。
解説
最後に積んだものを最初に降ろす、後入れ先出しの入れ物です。
スタックは、積み上げるという意味の言葉です。机の上に本を積んでいくところを思うと分かります。取るのは、いちばん上、つまり最後に載せた一冊です。下のほうを先に抜くことはできません。この出し入れの決まりを後入れ先出しといいます。計算の途中の値を一時的に置く場所や、呼び出した処理から戻る先を覚えておく場所に使われます。積んだものを降ろすとき、上から順に取っていくので、入れた順と出す順がちょうど逆になります。三冊を1、2、3の順に積んだなら、出てくるのは3、2、1の順です。基本の操作は積む操作と降ろす操作の二つで、途中を覗く操作は持ちません。対になるデータ構造がキューで、こちらは待ち行列とも呼ばれ、先に入れたものから出ていきます。窓口に並ぶ列と同じ順です。二つは向きがちょうど反対になります。
ほかの選択肢はなぜ違うのか
- ア格納された順序に関係なく指定された任意の…:格納の順に関係なく、指定した任意の場所から取り出すという肢です。これは配列のような、番号で直接指せる並びの取り出し方です。スタックは上からしか触れません。大きさを先に決めておく必要があります。途中を抜くことはできません。
- ウ最初に格納されたデータを最初に取り出す。:最初に入れたものを最初に取り出すという肢です。これはキューの決まりで、先入れ先出しといいます。スタックとちょうど反対です。割り込みを許さない仕組みです。印刷の順待ちがその例です。二つを取り違えると、そのまま逆の答えになります。
- エデータがキーをもっており,キーの優先度で…:データがキーを持ち、優先度の高いものから取り出すという肢です。これは優先度付きの待ち行列にあたります。入れた順ではなく、付けた重みで順番が決まります。三つ目の別の決まりです。
出典:平成30年度 秋期 ITパスポート試験(特別措置試験) 問76
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)