import java.util.Stack; /** * 使用两个栈来实现队列 * 栈:先进后出 * 队列:先进先出 */ public class StackDemo { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); //栈1用来入队列 public void push(int n) { stack1.push(n); } //栈2出队列 public int pop() { int res = 0; if (!stack2.empty()) { res = stack2.pop(); } else { while (!stack1.empty()) { stack2.push(stack1.pop()); } res = stack2.pop(); } System.out.println(res); return res; } public static void main(String[] args) { StackDemo stackDemo = new StackDemo(); stackDemo.push(1); stackDemo.push(2); stackDemo.push(3); stackDemo.push(4); stackDemo.push(5); stackDemo.pop(); stackDemo.pop(); stackDemo.pop(); stackDemo.push(6); stackDemo.pop(); stackDemo.pop(); stackDemo.pop(); stackDemo.push(7); stackDemo.pop(); } }
两个栈实现队列
最新推荐文章于 2022-03-23 10:46:30 发布