大きさ N の配列 A[0]〜A[N−1] を循環させて使うキューで、先頭要素の添字を front、格納されている要素数を count とする。キューが満杯でないとき、次に enqueue する要素を格納する添字はどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 A(front + count) mod N
解説
正解は「(front + count) mod N」です。循環キューでは、配列の末尾まで使ったら先頭に戻って再利用するため、添字を N で割った余りで計算します。先頭の要素が front 番目にあり、count 個の要素が続いて格納されているので、末尾の次は front + count 番目で、これが N 以上になる場合に先頭側へ折り返すよう mod N を取ります。「front + count」は折り返しを考慮しておらず、配列の範囲外を指すことがあります。「(front - count) mod N」は先頭より前の位置を指し、方向が逆です。「(front + 1) mod N」は、dequeue した後に新しい先頭となる位置で、追加する位置ではありません。
- #キュー
- #配列
この調子でデータ構造とアルゴリズムを続けて解く
▶ この科目の連続演習へ進む(10問)