アルゴリズムとプログラミング
基本情報技術者試験|両端キュー(デック)dq…
両端キュー(デック)dq に対し、pushFront(先頭に追加)、pushBack(末尾に追加)、popFront(先頭から取り出して返す)、popBack(末尾から取り出して返す)を行う。空の dq に次の操作を順に実行したあと、デックの内容(先頭→末尾)はどれか。
○手続: run() pushBack(150) pushFront(260) pushBack(370) popFront() pushFront(480) popBack()
ア{480, 370}
イ{260, 150}(前半の状態)
ウ{480, 150}
エ{150,480}
正解
ウ.{480, 150}
両端への追加・削除を順に追うと、260 は popFront で、370 は popBack で除かれ、残るのは 150 と先頭に追加された 480 である。先頭→末尾で {480, 150} となるため ウが正しい。
?選択肢ごとの解説
ア ×popBack で除いたはずの 370 を残し、150 を落とした誤りで、末尾削除の対象を取り違えている。
イ ×操作前半の状態 {260,150} を答えた誤りで、後半の popFront・pushFront・popBack を反映していない。
ウ ○両端への追加・削除を順に追うと、260 は popFront で、370 は popBack で除かれ、残るのは 150 と先頭に追加された 480 である。先頭→末尾で {480, 150} となるため ウが正しい。
エ ×要素 {480,150} は正しいが先頭と末尾の並びを逆にした、両端の向きを取り違えた誤りである。
アルゴリズムとプログラミングの他の問題
値スタック valStk と最大値スタック maxStk の 2 本を使い、push…空のスタックに対し、文字 'P' は次の数を push する操作、文字 'o' は pop…印刷ジョブを先着順(FIFO)で処理するキュー q がある。各ジョブは (id, ページ数) を持ち、deq…次の擬似言語は、文字列 s を左から走査し、スタック頂上と同じ文字が来たら頂上を pop して両者を消し、異なれば…容量 4 の循環キュー(リングバッファ)を配列 buf[1..4] で実装する。head は次に取り出す位置、tail…同じ入力列 1, 2, 3, 4 を、(A) スタック(push 後にすべて pop)と (B) キュー(enqueue…スタックに対する push(積む)と…キューに対する enqueue(末尾に追加)と…
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。
基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。
登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。
作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-algo-0102
