1

配列のすべてのエントリをキュー形式で表示するこのコードを作成します。for問題は、コンテンツを0に巻き戻すステートメントなしでこれを実行できると言われたことですがi、その方法がわかりません。

他にどのようにこれを行うことができますか?

   public void display()
   {
       int i = frontIndex;

       while(true)
       {
           if (i == numberOfItems)
               i = 0;

           System.out.print(array[i++] + " ");

           if (i == rearIndex + 1)
               break;
       }
   }
4

3 に答える 3

5

%演算子を使用して、次を出力できますi % numberOfItems

テストされていませんが、次のようなものである必要があります。

for (int i = frontIndex; i % numberOfItems != rearIndex+1; i++) { 
   System.out.print(array[(i++) % numberOfItems)] + " ");
}

アイデアはであるため、演算子(array.length + k) % array.length == kを使用することは、実際にはインデックスを 0 にリセットすることと同じです。%i

于 2012-10-11T09:33:51.930 に答える
0

Arrays.toString()配列の内容を表示するだけの場合は、コードの代わりにメソッドを使用します

于 2012-10-11T09:29:30.563 に答える
0

LinkedListアンダーQueueインターフェイスを使用する必要があると思います。私をよりよく理解するためにLinkedListjavadocsを見てください。Queue

于 2012-10-11T09:35:51.093 に答える