資格部

資格・検定の試験情報、対策方法、問題解説などをご紹介

FE 科目B サンプル問題 問8

 

 次の記述中の   に入れる正しい答えを,解答群の中から選べ。

 優先度付きキューを操作するプログラムである。優先度付きキューとは扱う要素に優先度を付けたキューであり,要素を取り出す際には優先度の高いものから順番に取り出される。クラス PrioQueue は優先度付きキューを表すクラスである。クラス PrioQueue の説明を図に示す。ここで,優先度は整数型の値 1,2,3 のいずれかであり,小さい値ほど優先度が高いものとする。
 手続 prioSched を呼び出したとき,出力は   の順となる。

コンストラクタ 説明
PrioQueue() 空の優先度付きキューを生成する。
メソッド 戻り値 説明
enqueue(文字列型: s, 整数型: prio) なし 優先度付きキューに,文字列 s を要素として,優先度 prio で追加する。
dequeue() 文字列型 優先度付きキューからキュー内で最も優先度の高い要素を取り出して返す。最も優先度の高い要素が複数あるときは,そのうちの最初に追加された要素を一つ取り出して返す。
size() 整数型 優先度付きキューに格納されている要素の個数を返す。

図 クラス PrioQueue の説明

〔プログラム〕

◯prioSched()

 PrioQueue: prioQueue ← PrioQueue()

 prioQueue.enqueue("A", 1)

 prioQueue.enqueue("B", 2)

 prioQueue.enqueue("C", 2)

 prioQueue.enqueue("D", 3)

 prioQueue.dequeue() /* 戻り値は使用しない */

 prioQueue.dequeue() /* 戻り値は使用しない */

 prioQueue.enqueue("D", 3)

 prioQueue.enqueue("B", 2)

 prioQueue.dequeue() /* 戻り値は使用しない */

 prioQueue.dequeue() /* 戻り値は使用しない */

 prioQueue.enqueue("C", 2)

 prioQueue.enqueue("A", 1)

 while (prioQueue.size() が 0 と等しくない)

  prioQueue.dequeue() の戻り値を出力

 endwhile

 

解答群

  1. “A”,“B”,“C”,“D”
  2. “A”,“B”,“D”,“D”
  3. “A”,“C”,“C”,“D”
  4. “A”,“C”,“D”,“D”

解答・解説

解答

 エ

解説

 作成中

前問 一覧 次問