FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説:次の循環キュー操作を実行したとき、戻り値はどれか。front…
問題
次の循環キュー操作を実行したとき、戻り値はどれか。frontは次に取り出す位置、rearは次に格納する位置を表す。
整数型: size ← 5 整数型: front ← 1, rear ← 1 整数型の配列: q 手続 enqueue(整数型: x) q[rear] ← x rear ← (rear mod size) + 1 end手続 関数 dequeue() 整数型: x ← q[front] front ← (front mod size) + 1 return x end関数 enqueue(4); enqueue(7); dequeue(); enqueue(2); enqueue(9); dequeue(); enqueue(5) return dequeue() + front × 10 + rear
- ア 41
- イ 43(正解)
- ウ 51
- エ 61
正解と解説
正解:43
enqueue 4,7後にrear=3です。1回目のdequeueで4を取り出してfront=2になります。enqueue 2,9後にrear=5です。2回目のdequeueで7を取り出してfront=3になります。enqueue 5でrearは1に循環します。
最後のdequeueでは2を取り出し、frontは4になります。戻り値は2+4×10+1=43です。
Hardでの確認点:循環キューでは、frontとrearが指す意味を分けましょう。frontは次に取り出す位置、rearは次に格納する位置であり、操作後に進みます。sizeを超えたら1へ戻る点も表で追いましょう。
引っかかりやすい点:添字が1始まりのため、循環の式 (rear mod size)+1 は 1→2→3→4→5→1 と巡回し、0や6を指しません。rear=5のenqueueで (5 mod 5)+1=1 と先頭へ戻る挙動が要で、ここを size+1 や 0 と誤るとずれます。取り出しは4・7・2の順でFIFOが保たれている点も確認しましょう。
この問題について
擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。