キューを作成し、それにアイテムを追加または削除するプログラムを変更しました。
私のコードの問題は、1つのアイテムを削除してからアイテムを追加すると、無限ループに陥り、それを防ぐ方法がわからないことです。
私の目標は、display()メソッドのみを変更することです。
これが私がキューを表示する方法です:
public void display()
{
int i = front;
do {
if (maxSize == nItems)
{
if (i == size())
i = 0;
System.out.print(queArray[i++] + " ");
}
else if (maxSize < nItems)
{
System.out.print("Too many queue items!");
break;
}
else
maxSize = nItems;
}
while (i != rear + 1 && !isEmpty());
}
これが私がアイテムを追加および削除する方法です:
public void insert(long j) // put item at rear of queue
{
if(rear == maxSize-1) // deal with wraparound
rear = -1;
queArray[++rear] = j; // increment rear and insert
nItems++; // one more item
}
public long remove() // take item from front of queue
{
long temp = queArray[front++]; // get value and incr front
if(front == maxSize) // deal with wraparound
front = 0;
nItems--; // one less item
return temp;
}