题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

思路:
stack1的栈底作为队列的头,栈顶作为队列的尾,stack2来辅助pop。

  1. 入队列时:
    如果stack2不为空,可能是stack1过去的数据,那就就先要将stack2中的数据全都放到stack1中,然后再push。(想当于是在stack2空时,在stack1末尾push)
  2. 出队列时:
    如果stack1不为空,因为要取stack1的栈底元素,所以,要将stack1中的数据放到stack2中,再取stack2的栈顶元素stack2.top(),再pop,即是出队列。

代码实现:

class Solution
{
public:void push(int node) {while (!stack2.empty()){//如果stack2不为空stack1.push(stack2.top());//那就就先要将stack2中的数据全都放到stack1中stack2.pop();}stack1.push(node);//入队列}int pop() {while (!stack1.empty()){//如果stack1不为空stack2.push(stack1.top());//要将stack1中的数据放到stack2中,再取stack2的栈顶元素stack2.top()stack1.pop();//再pop}int result = stack2.top();//出队列stack2.pop();return result;}private:stack<int> stack1;stack<int> stack2;
};

运行结果:运行时间: <1 ms 占用内存:8568K 状态:答案正确

《剑指Offer》用两个栈来实现队列相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. [剑指offer]面试题第[59-2]题[JAVA][队列的最大值][暴力][双端队列]

    [问题描述][中等] [解答思路] 1. 暴力 复杂度分析 class MaxQueue {Queue<Integer> queue = new LinkedList();int maxV ...

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

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

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

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

  10. 剑指offer之两个队列实现栈的问题

    1 问题 两个队列实现栈的插入和获取头部元素的功能 2 分析 1)获取头部元素的功能分析: 我们有2个队列,我们知道队列的特点的先进先出,而栈的特点是先进后出,比如我们有数据1,2,3,4,我们分别依 ...

最新文章

  1. 计算机协会成立活动简报,“中国计算机学会CCF走进高校”活动在我校举行
  2. Flash中文字体嵌入终极解决方案
  3. LintCode 375. 克隆二叉树(深复制)
  4. 智慧交通day03-车道线检测实现06:车道线定位及拟合+代码实现
  5. c语言学习-编写函数求x的n次方的值
  6. 离线人脸识别C#类库分享 虹软2.0版本
  7. JXL读取,写入Excel
  8. 讨论CGContextDrawImage
  9. 【引用】关于close-on-exec标志
  10. 用100多行python代码开发java代码生成器
  11. 最新黑马java十次方社交项目教程
  12. I LOVE YOU TOO密码解析
  13. Win10 DirectShow
  14. android 谷歌室内定位,打造室内导航 谷歌发布WifiRttScan App测试室内定位
  15. 光纤传输设备如何选择?光纤网络的优缺点分析
  16. 文档加密保护有加密狗全解决:word加密
  17. git仓库服务器SSH认证示例
  18. 标准差越大越集中_中国大学MOOC: 正态分布的标准差越大,其概率密度曲线越高越集中。...
  19. 2022.10.10 英语背诵
  20. table vue 背景图片_table中background背景图片自动拉伸

热门文章

  1. 时序图如何表现分支_静态时序分析圣经翻译计划——第五章:延迟计算 (上)...
  2. request.form以及postman发送表单数据
  3. python连接redis失败、积极拒绝_python-django-redis拒绝连接问题解决_20191121
  4. oracle 拼接_老品牌福建泉州49寸液晶拼接屏多少钱品质
  5. 图片跟随鼠标移动并放大js特效
  6. 怎么判断机械硬盘要多大_秋天要多吃芋头,买芋头是买大的还是小的?学学广西大妈怎么买...
  7. 投资基金融资理财服务企业网站源码 织梦dedecms模板
  8. HTML5炫彩舞蹈学院官网网站模板
  9. oracle itl解析,oracle数据块dump文件中ITL详解
  10. 浏览器复制网页链接到微信,显示却只有网页title解决