用两个栈实现队列
来源:互联网 发布:通过网络安装软件补丁 编辑:程序博客网 时间:2024/06/07 12:42
一、题目要求
用两个栈来实现一个队列,完成队列的Push和Pop操作。
二、解题思路:
首先知道栈和队列的性质。栈:先进后出;队列:先进先出。
使用的两个栈。如:第一个栈的入栈顺序是1,2,3,4。将第一个栈中元素出栈后到第二个栈,那么第二个栈的入栈顺序就是4,3,2,1。那么栈2中元素出栈的顺序1,2,3,4就是第一个栈的入栈顺序,即通过两个栈实现的队列的性质:先进先出。
三、代码实现
import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) { stack1.push(node); } public int pop() { int num=0; if(!stack2.isEmpty()){ num=stack2.pop(); //重要的判断,因为入栈可能是动态的, //之前入栈几个元素,之后出栈有入栈元素 }else{ while(!stack1.isEmpty()){ stack2.push(stack1.pop()); //将栈1中元素暂存到栈2中 } if(!stack2.isEmpty()){ num=stack2.pop(); } } return num; }}
阅读全文
0 0
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- poj-3237-鸡兔同笼-C语言-简单计算
- Android中实现热补丁动态修复
- 仓储管理系统(面试问答)
- 最经典的TCP性能问题
- 轻松理解 Android Binder,只需要读这一篇
- 用两个栈实现队列
- java父类构造函数调用子类覆盖方法
- ecjtu-summer training #6 F
- powerdesigner设计数据库
- GWT工程架构详解
- C语言基础编程之识别合法帧
- web中的placeholder属性
- FCPFX外汇平台招商
- 第六章 Java并发容器和框架(ConcurrentHashMap,ConcurrentLinkedQueue,BlockingQueue,Fork Join)