我如何在没有参数的情况下反转队列。我正在尝试从不在该方法中的另一个队列中复制元素并反转这些元素。我有算法,但是我不知道如何访问要复制的原始队列。
public QueueInterface<T> reverseQueue() {
// TODO 8
Queue<T> a = new Queue<T>();
Stack<T> b = new Stack<T>();
while(!a.isEmpty()){
b.push(a.dequeue());
}
while(!b.isEmpty()){
a.enqueue(b.pop());
}
return a;
}
答案 0 :(得分:0)
因此,我添加了此条件,以将元素添加到变量temp中,并通过递归循环运行它,但是它给出了一条错误消息,如果队列为空,则会显示该错误消息NoSuchElementException。创建另一个Queue而不是temp并在其中以其他方式放置元素会更容易吗?
public QueueInterface<T> reverseQueue() {
T temp = null;
Queue<T> a = new Queue<T>();
if (temp == null) {
temp = dequeue();
a.enqueue(temp);
reversed();
}