アルゴリズムとプログラミング
基本情報技術者試験|同じ入力列 1, 2, 3, 4 を、(A) スタック(push 後にすべて pop)と (B)…
同じ入力列 1, 2, 3, 4 を、(A) スタック(push 後にすべて pop)と (B) キュー(enqueue 後にすべて dequeue)でそれぞれ全要素を取り出す。次の手続を実行したとき、出力 outA(スタック)と outB(キュー)を連結した文字列の組はどれか。push/pop は LIFO、enqueue/dequeue は FIFO に従う。
○手続: run() // (A) スタック 整数型: v for (v を 1 から 4 まで 1 ずつ増やす) stk.push(v) endfor while (stk が空でない) outA ← outA + stk.pop() endwhile // (B) キュー for (v を 1 から 4 まで 1 ずつ増やす) que.enqueue(v) endfor while (que が空でない) outB ← outB + que.dequeue() endwhile
アoutA="4321",outB="4321"
イoutA="1234", outB="4321"(逆に割当)
ウoutA="1234", outB="1234"
エoutA="4321", outB="1234"
正解
エ.outA="4321", outB="1234"
スタックは最後に積んだ 4 から取り出すため出力は 4321、キューは最初に入れた 1 から取り出すため出力は 1234 となる。両者の対比が正しく表れる エが正しい。
?選択肢ごとの解説
ア ×キューも逆順になると誤認した、FIFO が入力順を保つ性質を見落とした誤りである。
イ ×スタックとキューの出力を取り違え、LIFO と FIFO を逆に割り当てた誤りである。
ウ ×スタックも入力順になると誤認した、LIFO による逆転を見落とした誤りである。
エ ○スタックは最後に積んだ 4 から取り出すため出力は 4321、キューは最初に入れた 1 から取り出すため出力は 1234 となる。両者の対比が正しく表れる エが正しい。
アルゴリズムとプログラミングの他の問題
スタックに対する push(積む)と…キューに対する enqueue(末尾に追加)と…次の擬似言語は、スタックを用いて文字列中の丸括弧の対応が正しいかを調べ、正しければ "OK"、誤っていれば "NG"…次の擬似言語は、逆ポーランド記法(後置記法)の式をスタックで評価する手続である。トークン列を左から処理し、数値なら…次の擬似言語は、スタックを使って文字型の配列 s を逆順にした文字列を返す手続である。まず全文字を順に push…次の擬似言語は、演算子 + と ×…次の擬似言語は、丸括弧 ( ) と角括弧 [ ]…1, 2, 3, 4 をこの順に push できるスタックがある。push と pop…
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。
基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-algo-0108
