修了試験 2021-06-13実施分 基本情報技術者試験 問7
A,B,C,Dの順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。
正答3
解説
正解は3です。 スタックはLIFO(Last In First Out:後入れ先出し)のデータ構造です。 データはA、B、C、Dの順にしか積めず、取り出せるのは常に一番上のデータだけです。 各選択肢の出力順が、積む(push)と取り出す(pop)の操作で実現できるかを確かめます。 【処理の流れ】 選択肢3は次の操作で実現できます。 A、B、Cの順に積み、Cを取り出します。 次に一番上のBを取り出します。 Dを積んで、すぐにDを取り出します。 最後に残ったAを取り出すと、出力はC、B、D、Aになります。 【選択肢別解説】 1:× Aを積んで取り出し、B、C、Dを積んでDを取り出すと、一番上はCです。 次にBを出すことはできないので実現できません。 2:× A、Bを積んでBを取り出し、C、Dを積んでDを取り出すと、一番上はCです。 次にAを出すことはできないので実現できません。 3:○ 上の操作のとおり、C、B、D、Aの順に出力できます。 4:× A〜Dをすべて積んでD、Cを取り出すと、一番上はBです。 次にAを出すことはできないので実現できません。 【ポイント】 スタックの出力順の問題では、ある要素を出した時点でその下にある要素は逆順でしか出せません。 この性質を使うと、不可能な並びをすばやく見つけられます。まとめて解く
修了試験 2021-06-13実施分を通しで解く(80問)→