public static Queue1 mirror(Queue1 s){
int len = s.getSize();
Queue1 ret = new Queue1(s.getSize());
Queue1 tmp = new Queue1(s.getSize());
while(ret.getSize()!=len){
while(s.getSize()>1) tmp.insert(s.remove());
ret.insert(s.remove());
while(tmp.getSize()>1) s.insert(tmp.remove());
ret.insert(tmp.remove());
}
return ret;
}
我执行插入和删除方法:仅使用队列来逆转队列。获得indexofbound例外
public void insert(int x){
if(rear == maxsize-1) rear = -1;
arr[++rear] = x;
count++;
}
public int remove(){
int tmp = arr[front++];
if(front==maxsize) front = 0;
count--;
return tmp;
}
代码不工作,除非我增加Tmp
大小s.getSize()+2
,在这种情况下,它打印一个零。
有人能解释一下是怎么回事?
这些片段中哪一个不起作用?什么会使它工作? – Makoto 2014-10-04 13:22:37