【发布时间】:2020-11-12 20:07:29
【问题描述】:
您好,我试图弄清楚如何使用数组来反转队列。我附加了队列类和创建队列并在其中添加元素的运行器类。我创建了一个数组的反向方法,我的想法是检查元素删除并将其添加到创建的数组中。我是新来排队的,有点迷路。感谢您的帮助。
public class Queue{
private int QUEUE_SIZE = 5;
private Object[] items;
private int front, back, count;
public Queue() {
items = new Object[QUEUE_SIZE];
front = 0;
back = QUEUE_SIZE -1;
count =0;
}
public boolean isEmpty(){
return count==0;
}
public boolean isFull(){
return count == QUEUE_SIZE;
}
public void enqueue(Object newItem){
if (!isFull()){
back = (back+1) % QUEUE_SIZE;
items[back] = newItem;
count++;
return;
} else
System.out.println(
"Trying to enqueue into a full queue");
}
public Object dequeue(){
if (!isEmpty()){
Object queueFront = items[front];
front = (front+1) % QUEUE_SIZE;
count--;
return queueFront;
}else
System.out.println(
"Trying to dequeue from an empty queue");
return null;
}
public void dequeueAll(){
items = new Object[QUEUE_SIZE];
front = 0;
back = QUEUE_SIZE -1;
count =0;
}
public Object peek(){
if (!isEmpty()) {
return items[front];
}
else
System.out.println(
"Trying to peek with empty queue");
return null;
}
public int size(){
return count;
}
}
// queue created with reverse method
public class RunnerQueue {
public static void main(String args[]){
Queue q = new Queue();
q.enqueue(10);
q.enqueue(20);
q.enqueue(30);
q.enqueue(40);
q.enqueue(50);
public static void reverseQueue(Queue Q){
int[] revQue = new int(Q.size);
While(!Q.isEmpty()){
}
}
}
【问题讨论】:
-
反转队列是什么意思?就像颠倒它的插入顺序一样?或者一旦值在数组中就反转它?
-
@beastlyCoder 哦,对不起,我的意思是将队列的值反向放入数组中。所以就像队列将是 10,20,30,40 并且在数组或方法之后它将是 40,30,20,10
-
明白了,好吧
-
Collection.reverse(revQue);
-
@ShivanshPotdar 这行不通,因为它不是一个集合,而是他自己的队列类