当我编译时,它说在 deque java 中找不到符号,我也不知道为什么 pushleft 包含这一行 left = (left+1) % queue.length;
when I compile, it said cannot find symbol in deque java and I also dont know why dose pushleft contain this line left = (left+1) % queue.length;
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
}
}
当我运行这个的时候,我不明白为什么它给了我那个
DequeCyclic.java:115: 错误: 找不到符号
ab.isEmpty();
^
符号:方法 isEmpty()
位置:DequeCyclic[] 类型的变量 ab
1 个错误
我也想知道为什么 pushLeft 有这条线
左 = (左+1) % queue.length;
你的问题在这里:
DequeCyclic[] ab = new DequeCyclic[10];
这条线是做什么的?
它用名称 ab
.
初始化一个 DequeCyclic
的数组(大小=10)
您可能想要的是:
DequeCyclic ab = new DequeCyclic(10);
你用参数10调用DequeCyclic
的构造函数,赋值给变量ab
。
接下来,left = (left+1) % queue.length;
做什么?
是left+1 < queue.length
,相当于left++
。
否则,作为 left+1 == queue.length
,由于模运算符,left 将为零。
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
}
}
当我运行这个的时候,我不明白为什么它给了我那个 DequeCyclic.java:115: 错误: 找不到符号 ab.isEmpty(); ^ 符号:方法 isEmpty() 位置:DequeCyclic[] 类型的变量 ab 1 个错误 我也想知道为什么 pushLeft 有这条线 左 = (左+1) % queue.length;
你的问题在这里:
DequeCyclic[] ab = new DequeCyclic[10];
这条线是做什么的?
它用名称 ab
.
DequeCyclic
的数组(大小=10)
您可能想要的是:
DequeCyclic ab = new DequeCyclic(10);
你用参数10调用DequeCyclic
的构造函数,赋值给变量ab
。
接下来,left = (left+1) % queue.length;
做什么?
是left+1 < queue.length
,相当于left++
。
否则,作为 left+1 == queue.length
,由于模运算符,left 将为零。