当我编译时,它说在deque java中找不到符号,我也不知道为什么pushleft包含这行left=(left+;1)%queue.length;
当我运行这个时,我不知道为什么它给了我那个 java:115:错误:找不到符号 ab.是空的(); ^ 符号:方法isEmpty() 位置:DequeCyclic[]类型的变量ab 1错误 我还想知道为什么左推有这条线 左=(左+1)%queue.length 您的问题在于:当我编译时,它说在deque java中找不到符号,我也不知道为什么pushleft包含这行left=(left+;1)%queue.length;,java,object,symbols,deque,Java,Object,Symbols,Deque,当我运行这个时,我不知道为什么它给了我那个 java:115:错误:找不到符号 ab.是空的(); ^ 符号:方法isEmpty() 位置:DequeCyclic[]类型的变量ab 1错误 我还想知道为什么左推有这条线 左=(左+1)%queue.length 您的问题在于: DequeCyclic[]ab=新的DequeCyclic[10] 这条线是干什么的? 它初始化一个名为ab的DequeCyclics数组(大小=10) 您可能想要的是: DequeCyclic ab=新的DequeCyc
DequeCyclic[]ab=新的DequeCyclic[10]代码>
这条线是干什么的?
它初始化一个名为ab
的DequeCyclic
s数组(大小=10)
您可能想要的是:
DequeCyclic ab=新的DequeCyclic(10)代码>
使用参数10调用DequeCyclic
的构造函数,将其分配给变量ab
接下来,什么是left=(left+1)%queue.length代码>做什么
它left+1
,相当于left++
。
否则,只要left+1==queue.length
,由于模运算,left将为零。注意:left=right=size=0
无效。非常感谢!这很有帮助!
public class DequeCyclic implements Deque{
private int left, right, size, capacity;
private Object[] queue;
//Constructing an empty Queue
//@param s is the final size of the array
public DequeCyclic(final int s) {
left= right = size = 0;
queue = new Object[s];
capacity = s;
}
public boolean isEmpty() {
return (size == 0);
}
public void pushLeft(Object c) throws Overflow{
if (isFull()) {
throw new Overflow ("the queue is full");
}
else if (left == 0 && right == 0 && size ==0) {
queue[0] = c;
}
else {
left = (left+1) % queue.length;
queue[left] = c;
}
size++;
}
public static void main(String[] args){
DequeCyclic[] ab = new DequeCyclic[10];
ab.isEmpty();//this is the problem
}
}