我有這樣的代碼工作正常添加:後值不圓陣隊列
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