我有这样的代码工作正常添加:后值不圆阵队列
public void add(AnyType item){
if(isEmpty()){
q[f]=item;
}
else{
if(size==q.length){
AnyType[] copyQ = (AnyType[]) new Object[q.length*2];
System.arraycopy(q, f, copyQ, 0, q.length-f);
System.arraycopy(q, 0, copyQ, q.length-f, r);
f = 0;
q = copyQ;
}
}
q[r]=item;
r = (r+1)%(q.length);
size++;
}
但是当我想要得到的r
价值它给了我比它实际上是一个更大的价值。另外,当我将一个数组的值复制到另一个数组时,有一个值会跳过一个值。我知道一切都与r = (r+1)%(q.length);
的价值有关,我一直在努力工作几个小时,但无法弄清楚。 将值赋给q [r]后,即使它只是第一个值,并且我尝试获取r的值应该是1,因为它是由公式增加的,但我无法确定了解如何以不同的方式编写循环队列公式。 任何帮助将不胜感激。谢谢!
你可能想解释r应该是什么 – Matt
r是后面,f是前面。 q是队列的名称。 – randomizertech