我修改了一个程序,该程序创建一个队列,然后向其中添加或删除项目。
我的代码中的问题是,在我删除一个项目,然后添加一个项目后,它会进入无限循环,我不知道如何防止它发生。
我的目标是仅修改 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;
}