基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [平成31年春午前] [平成31年春午後]

平成24年 秋期 基本情報技術者 午前 問05
問05   スタックを使った並べ替え

 四つのデータ A, B, C, D がこの順に入っているキューと空のスタックがある。 手続 pop_enq,deq_push を使ってキューの中のデータを D, C, B, A の順に並べ替えるとき, deq_push の実行回数は最小で何回か。ここで,pop_enq はスタックから取り出したデータを キューに入れる操作であり,deq_push はキューから取り出したデータをスタックに入れる操作である。

ア 2       イ 3       ウ 4       エ 5
解答←クリックすると正解が表示されます

解説

 キューは、最初に入れたデータが一番最初に取り出される。 取り出されるデータは格納されている最古のデータである。 最初に入れられたものが最初に取り出されるので FIFO(first in first out:先入先出し)と呼ばれる。

 スタックは、最後に入れたデータが一番最初に取り出される。 最後に入れられたものが最初に取り出されるので LIFO(last in first out:後入先出し)と呼ばれる。

 この問題では、図のように、deq_push を3回行い、データを3個スタックに格納したあと、 pop_enq を3回行い、データをキューに戻す。


[←前の問題] [次の問題→] [問題一覧表] [分野別] [キーワード索引] [基本情報技術者試験TOP ]