空のスタック S と空のキュー Q に対して、push(S, 3) → push(S, 8) → enqueue(Q, pop(S)) → push(S, 5) → enqueue(Q, 1) → enqueue(Q, pop(S)) → dequeue(Q) の操作を順に実行した。最後の dequeue(Q) で取り出される値はどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 D8
解説
正解は「8」です。スタックは最後に入れたデータを最初に取り出す LIFO、キューは最初に入れたデータを最初に取り出す FIFO のデータ構造です。順に追うと、2回の push で S は [3, 8] となり、pop(S) で8が取り出されて Q=[8] になります。次に push(S, 5) で S=[3, 5]、enqueue(Q, 1) で Q=[8, 1]、pop(S) で5が取り出されて Q=[8, 1, 5] です。最後の dequeue(Q) はキューの先頭の8を取り出します。「5」はキューを LIFO と誤り、最後に入れた値を取り出した場合です。「1」は2番目に入れた値です。「3」はスタックの底に残っている値で、キューには入っていません。
- #スタック
- #キュー
この調子でデータ構造とアルゴリズムを続けて解く
▶ この科目の連続演習へ進む(10問)