【剑指offer】 用两个栈实现队列 java实现
【剑指offer】 用两个栈实现队列
题目:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
分析:
栈和队列的性质,栈是先进后出的,而队列是先进先出的。对于栈我们可以看成是一个装羽毛球的球筒,第一个放入球筒的球在最底部,最后一个球放在最上部;对于队列,就像买票排队,先排的先出,。言归正传,假如输入1,2,3则该程序也需要按顺序输出1,2,3。
代码:
package offer;import java.util.Stack;public class Offer_5 {Stack<Integer> stack1 = new Stack();Stack<Integer> stack2 = new Stack();public void push(int node){stack1.push(node);}public int pop(){if(stack2.isEmpty()){while(!stack1.isEmpty()){stack2.push(stack1.pop());}}return stack2.pop();}public boolean isEmpty(){return stack2.isEmpty()&&stack1.isEmpty();}public int peek() {if (stack2.isEmpty()) {while (!stack1.isEmpty()) {stack2.push(stack1.pop());}}return stack2.peek();}public static void main(String[] args) {Offer_5 newStack = new Offer_5();newStack.push(1);newStack.push(2);newStack.push(3);newStack.push(4);while(!newStack.isEmpty()){System.out.println(newStack.pop());}}
}
【剑指offer】 用两个栈实现队列 java实现相关推荐
- [剑指offer] 用两个栈实现队列
本文首发于我的个人博客:尾尾部落 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路 两个栈 stack1 和 stack2: push 动作都在 ...
- 剑指offer——用两个栈实现队列
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路: 当stack2不为空时,在stack2中的栈顶元素是最先进入队列的元素,可以弹出.当stack2 ...
- 【栈与队列】剑指offer:两个栈模拟队列
栈:先进后出 队列:先进先出 所以,只要分3种情况写即可 class Solution { public:void push(int node) {stack1.push(node);}int pop ...
- 剑指offer五:两个栈实现一个队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. package com.jianzhioffer;import java.util.Stack;publ ...
- 剑指offer 用2个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解决方案: import java.util.Stack;public class Solution { ...
- 剑指offer-JZ9 用两个栈实现队列(C++,附思路)
描述 用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能. 队列中的元素为int类型.保证操作合法,即保证pop操作时队列内已有元 ...
- 剑指Offer09. 用两个栈实现队列
class CQueue {public:stack<int> stack1,stack2;CQueue() {//初始化栈while(!stack1.empty()){stack1.po ...
- 《LeetCode力扣练习》剑指 Offer 09. 用两个栈实现队列 Java
<LeetCode力扣练习>剑指 Offer 09. 用两个栈实现队列 Java 一.资源 题目: 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 de ...
- 【LeetCode】剑指 Offer 52. 两个链表的第一个公共节点
[LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 文章目录 [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 一.双指针 一.双指针 设 "第一个 ...
- 剑指 Offer 52. 两个链表的第一个公共节点
题目:剑指 Offer 52. 两个链表的第一个公共节点 ,哈哈,我们今天来看一道很简单的题嘛,这是选自剑指 Offer 上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不 ...
最新文章
- java常见对象_Java/10_Java常见对象.md at master · DuHouAn/Java · GitHub
- 成功解决AttributeError: module tensorflow.compat has no attribute v1
- php16进制密钥签名对接支付,简单理解rsa的加密和签名-PHP实现
- mdin偏移_C8051F020入门指导重点.ppt
- ubuntu 重装系统备份数据 ubuntu安装kde桌面
- c语言游戏角色建立,(c语言)游戏中由人物各种信息组成的结构体
- C# web 后台页面间的跳转
- DNF私服搭建的利弊关系
- 差点无缘Offer!java高并发编程详解深入理解pdf
- Google Chrome 49.0.2623.112 XP系统最终版离线安装包官方下载地址
- 光合作用c3和c5变化语言叙述,浅议光合作用中C3和C5的含量变化
- eval解析json字符串
- 刷机:酷比魔方iwork8 刷回双系统
- 服务器多网卡多路由策略
- python在windows中备份文件并压缩的解决办法
- Annotation 和Spring Annotation 知识整理
- 谷歌剧变:李飞飞李佳离职后,现在轮到云CEO出局
- java复习思维导图
- Android提示音大全,个性提示音下载-个性提示音app安卓版下载v1.2.1-游迅网
- Oracle存储过程-增删改查与调用