package com.csdn;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class ReverseStack {
public static void main(String[] args) {
Stack stack = new Stack();
stack.push("lu");
stack.push("feng");
stack.push("liu");
stack.push("lu");
stack.push("ying");
reverseStack(stack);
while(stack.size()>0){
System.out.println(stack.pop());
}
}
private static void reverseStack(Stack stack) {
Queue queue = new LinkedList();
while(stack.size()>0)
//offer(E e) 将指定元素添加到此列表的末尾(最后一个元素)。
queue.offer(stack.pop());
while(queue.size()>0){
//poll()获取并移除此列表的头(第一个元素),下面应该用pollLast()
stack.push(((LinkedList) queue).pollLast());
}
}
}
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class ReverseStack {
public static void main(String[] args) {
Stack stack = new Stack();
stack.push("lu");
stack.push("feng");
stack.push("liu");
stack.push("lu");
stack.push("ying");
reverseStack(stack);
while(stack.size()>0){
System.out.println(stack.pop());
}
}
private static void reverseStack(Stack stack) {
Queue queue = new LinkedList();
while(stack.size()>0)
//offer(E e) 将指定元素添加到此列表的末尾(最后一个元素)。
queue.offer(stack.pop());
while(queue.size()>0){
//poll()获取并移除此列表的头(第一个元素),下面应该用pollLast()
stack.push(((LinkedList) queue).pollLast());
}
}
}
本文介绍了一种利用队列的数据结构来实现栈的反转的方法。通过创建一个队列,并将栈内的元素依次弹出并存入队列,再将队列的元素按顺序重新压回栈中,从而达到反转的效果。最后演示了反转后的栈输出。
1403

被折叠的 条评论
为什么被折叠?



