修了試験 2016-07-24実施分 基本情報技術者試験 問5
A,B,C,Dの順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。
正答3
解説
正解は3です。 スタックはLIFO(Last In First Out:後入れ先出し)のデータ構造で、最後に入れたデータから取り出されます。 A、B、C、Dの順に入れながら、途中で取り出しを挟んで、各選択肢の順に出力できるかを確かめます。 【選択肢別解説】 1:× Aを入れてすぐ取り出し、B、C、Dを入れてDを取り出すと、次に取り出せるのは一番上のCです。 Cより下にあるBを先に出すことはできません。 2:× A、Bを入れてBを取り出し、C、Dを入れてDを取り出すと、一番上はCです。 Cより下にあるAを先に出すことはできません。 3:○ A、B、Cを入れてC、Bの順に取り出し、Dを入れてすぐ取り出し、最後に残ったAを取り出します。 これでC、B、D、Aの順に出力できます。 4:× A〜Dをすべて入れてD、Cの順に取り出すと、一番上はBです。 Bより下にあるAを先に出すことはできません。 【ポイント】 スタックでは、まだ残っている要素は、入れた順の逆の順でしか取り出せません。 キュー(FIFO:先入れ先出し)では、入力順と同じA、B、C、Dしか出力できない点と対比して覚えます。まとめて解く
修了試験 2016-07-24実施分を通しで解く(80問)→