Java语言高分悬赏:如何将一个queue中的数据存放在stack里面实现reverse
由于队列和堆栈是两种结果,队列是先进后出的,直接将队列的元素压入站后,再一一出栈后就实现队列元素翻转了。
Java 的 Stack 和 Queue ,都有现成的 API ,直接用就可以:https://www.runoob.com/java/data-queue.html
q: queue
s: stack
while ( ! q.empty()) {
x = q.dequeue();
s.push(x);
}
while( !s.empty()) {
x = s.pop();
q.enqueue(x);
}
以次将queue的元素取出放进stack里边,直到queue为空
然后再将stack里的元素以次取出,放到 queue里边去就可以了,
这是queue里的元素就是原来的逆序
public class QueueToStack {
public static <T> void reverse(Queue<T> queue, Stack<T> stack){
while(!queue.isEmpty()){
stack.push(queue.poll());
}
}
public static void main(String[] args) {
Queue<String> queue = new ArrayDeque<>(Arrays.asList("1","2","3"));
Stack<String> stringStack = new Stack<>();
reverse(queue,stringStack);
while(!stringStack.empty()){
System.out.println(stringStack.pop());
}
}
}
望大佬采纳