可以请教一下怎么修改代码才能出这样的输出呢
public class Queue {
private Double[] values;
private int front;
private int rear;
private int counter;
public Queue(int size) {
values = new Double[size];
front = 0;
rear = -1;
counter = 0;
}
public boolean isEmpty() {
if(this.front == this.rear) {
return true;
}
return false;
}
public boolean isFull() {
if(front == (rear+1) % values.length) {
return true;
}
return false;
}
public Double enqueue(double x) {
if(isFull()) {
return null;
}else {
rear = (rear + 1) % values.length;
values[rear] = Double.valueOf(x);
counter++;
return values[rear];
}
}
public Double dequeue() {
if(isEmpty()) {
return null;
}else {
front = (front + 1) % values.length;
counter--;
return values[front];
}
}
public void displayQueue() {
if(isEmpty()) {
System.out.println("Empty queue!");
return;
}
System.out.print("front-> ");
for(int i = 0; i < values.length; i++) {
System.out.println(values[i]);
}
}
public static void main(String[] args) {
Queue myQueue = new Queue(4);
myQueue.enqueue(-2);
myQueue.enqueue(3);
myQueue.enqueue(1);
System.out.println("The queue has 3 items: -2, 3, 1");
myQueue.displayQueue();
myQueue.enqueue(8);
myQueue.enqueue(6);
System.out.println("The queue has 4 items: -2, 3, 1, 8");
myQueue.displayQueue();
myQueue.dequeue();
myQueue.dequeue();
System.out.println("The queue has 2 items: 1, 8");
myQueue.displayQueue();
myQueue.dequeue();
myQueue.dequeue();
myQueue.dequeue();
System.out.println("The queue is empty:");
myQueue.displayQueue();
}
}
我想要的效果:
The queue has 3 items: -2, 3, 1
front -> | -2.0000 |
| 3.0000 |
| 1.0000 | < - rear
The queue has 4 items: -2, 3, 1, 8
front -> | -2.0000 |
| 3.0000 |
| 1.0000 |
| 8.0000 | < - rear
The queue has 2 items: 1, 8
front -> | 1.0000 |
| 8.0000 | < - rear
The queue is empty:
Empty queue!
运行结果及报错内容 :
The queue has 3 items: -2, 3, 1
front-> null
null
null
null
The queue has 4 items: -2, 3, 1, 8
front-> null
null
null
null
The queue has 2 items: 1, 8
front-> null
null
null
null
The queue is empty:
front-> null
null
null
null