追加するためのこのコードがあります:
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
、実際よりも 1 つ多くの値が得られます。また、ある配列から別の配列に値をコピーすると、1 つの値をスキップしているという値があります。私はすべてが の値に関係していることを知っており、何r = (r+1)%(q.length);
時間も取り組んできましたが、それを理解することはできません。q[r] に値を割り当てた後、最初の値だけであっても、r の値を取得しようとすると、式によって増加するため 1 になりますが、わかりません循環キュー式を台無しにすることなく、別の方法でそれを記述する方法。どんな助けでも大歓迎です。ありがとう!