【发布时间】:2016-02-28 14:43:20
【问题描述】:
我正在尝试编写一个 recursive 方法来反转队列中的所有元素。
在实现Queue接口的抽象类myQueue中是我的reverse方法:
public void reverse() {
T temp = dequeue();
Queue<T> bufferQueue = new Queue<T>();
if(!(temp == null)){
bufferQueue.enqueue(temp);
}
if(!(isEmpty())) {
reverse();
}else{
while(!(bufferQueue.isEmpty())){
Queue.enqueue(bufferQueue.dequeue);
}
}
}
接口Queue具有以下方法,这些方法是完整的(并且按照定义隐式执行):
public boolean isEmpty();
public int size();
public void enqueue(T e);
public T dequeue();
public T front();
我的目标:
在我的reverse 方法 中,我的目标是不断地dequeue(删除第一个元素)从我的原始队列中递归直到我的队列为空。每次我出队时,我都会将该对象放入 临时 队列中。当我的队列为空时,我会从 临时队列 入队 回到我原来的队列。
我的第一个问题是定义一个新的临时队列,在我的例子中是 bufferQueue。我得到以下信息:
1. ERROR at solution.java (at line 12)
Queue<T> bufferQueue = new Queue<T>();
^^^^^
Cannot instantiate the type Queue<T>
【问题讨论】:
-
Queue是一个接口,你需要实例化一个Queue的具体实现
标签: java recursion queue reverse