【剑指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实现相关推荐

  1. [剑指offer] 用两个栈实现队列

    本文首发于我的个人博客:尾尾部落 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路 两个栈 stack1 和 stack2: push 动作都在 ...

  2. 剑指offer——用两个栈实现队列

    题目:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路: 当stack2不为空时,在stack2中的栈顶元素是最先进入队列的元素,可以弹出.当stack2 ...

  3. 【栈与队列】剑指offer:两个栈模拟队列

    栈:先进后出 队列:先进先出 所以,只要分3种情况写即可 class Solution { public:void push(int node) {stack1.push(node);}int pop ...

  4. 剑指offer五:两个栈实现一个队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. package com.jianzhioffer;import java.util.Stack;publ ...

  5. 剑指offer 用2个栈实现队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解决方案: import java.util.Stack;public class Solution { ...

  6. 剑指offer-JZ9 用两个栈实现队列(C++,附思路)

    描述 用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能. 队列中的元素为int类型.保证操作合法,即保证pop操作时队列内已有元 ...

  7. 剑指Offer09. 用两个栈实现队列

    class CQueue {public:stack<int> stack1,stack2;CQueue() {//初始化栈while(!stack1.empty()){stack1.po ...

  8. 《LeetCode力扣练习》剑指 Offer 09. 用两个栈实现队列 Java

    <LeetCode力扣练习>剑指 Offer 09. 用两个栈实现队列 Java 一.资源 题目: 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 de ...

  9. 【LeetCode】剑指 Offer 52. 两个链表的第一个公共节点

    [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 文章目录 [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 一.双指针 一.双指针 设 "第一个 ...

  10. 剑指 Offer 52. 两个链表的第一个公共节点

    题目:剑指 Offer 52. 两个链表的第一个公共节点 ,哈哈,我们今天来看一道很简单的题嘛,这是选自剑指 Offer 上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不 ...

最新文章

  1. java常见对象_Java/10_Java常见对象.md at master · DuHouAn/Java · GitHub
  2. 成功解决AttributeError: module tensorflow.compat has no attribute v1
  3. php16进制密钥签名对接支付,简单理解rsa的加密和签名-PHP实现
  4. mdin偏移_C8051F020入门指导重点.ppt
  5. ubuntu 重装系统备份数据 ubuntu安装kde桌面
  6. c语言游戏角色建立,(c语言)游戏中由人物各种信息组成的结构体
  7. C# web 后台页面间的跳转
  8. DNF私服搭建的利弊关系
  9. 差点无缘Offer!java高并发编程详解深入理解pdf
  10. Google Chrome 49.0.2623.112 XP系统最终版离线安装包官方下载地址
  11. 光合作用c3和c5变化语言叙述,浅议光合作用中C3和C5的含量变化
  12. eval解析json字符串
  13. 刷机:酷比魔方iwork8 刷回双系统
  14. 服务器多网卡多路由策略
  15. python在windows中备份文件并压缩的解决办法
  16. Annotation 和Spring Annotation 知识整理
  17. 谷歌剧变:李飞飞李佳离职后,现在轮到云CEO出局
  18. java复习思维导图
  19. Android提示音大全,个性提示音下载-个性提示音app安卓版下载v1.2.1-游迅网
  20. Oracle存储过程-增删改查与调用

热门文章

  1. win10安装loadrunner提示管理员阻止 亲测有效
  2. 深入理解Java Binder
  3. 18载艰苦创业,曾动念房地产转型,讯飞的江湖夜雨和桃李春风
  4. 106短信验证码发送不出去是因为什么原因
  5. php system()
  6. Session for PHP
  7. Eclipse安装阿里巴巴代码插件p3c
  8. zynq system c语言,深度揭秘基于Zynq的开源测试平台火龙果(Red Pitaya)
  9. 前端:完整简单详细的注册页面讲解
  10. Manomotion手势识别unity sdk安装与发布