1 //题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。  //思路:就是先将元素放在栈1中,然后从栈1中取出,放到栈2中,直至栈1为空。      //删除操作---当stack2中不为空时,在stack2中的栈元素时最先进入队列中的元素。可以弹出。如果stack2中为空,则此时就要将stack1中的元素弹出逐个压入栈  //请实现它的两个函数appendTail和deleteHead
 2 class Solution
 3 {
 4 public:
 5     void push(int node)
 6     {
 7         stack1.push(node);
 8     }
 9     int pop()
10     {
11         //因为栈的性质是先进后出原则,只有出完才可以进
12         //只有第二个栈中没有元素时,才可以继续从第一个栈中添加
13         if (stack2.size()<=0)
14         {
15             while (stack1.size() > 0)
16             {
17                 int tmp = stack1.top();
18                 stack2.push(tmp);
19                 stack1.pop();
20             }
21         }
22         int head = stack2.top();
23         stack2.pop();
24         return head;
25     }
26 private:
27     stack<int> stack1;
28     stack<int> stack2;
29 };

转载于:https://www.cnblogs.com/maleyang/articles/7399478.html

05-用两个栈实现一个队列相关推荐

  1. 多态指针访问虚函数不能被继承的类快速排序N皇后问题插入排序堆排序merge归并排序栈上生成对象两个栈实现一个队列...

    多态 /*1. 要想实现覆盖(重写)父类必须声明为virtual,子类可以不声明为virtual.-->FunB()2. 派生类重写基类的虚函数实现多态,要求函数名.参数列表.返回值完全相同.( ...

  2. 【剑指offer】用两个栈实现一个队列

    题目:两个栈实现一个队列. 栈的特点:先进后出,队列的特点是先进先出 思路:stack1放入数据:pop时,先判断stack2是否为空,如果不为空,直接pop,如果空,则push(stack1.pop ...

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

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

  4. 两个栈实现一个队列,两个队列实现一个栈

    题目:用两个栈实现一个队列,用两个队列实现一个栈. 首先要了解栈和队列这两种数据结构各自的特点,栈是一种后入先出(Last In First Out,LIFO)的数据结构,队列是一种先进先出(Firs ...

  5. python 用两个栈实现一个队列

    | 两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元素 ...

  6. java实现-两个栈实现一个队列和两个队列实现一个栈

    1.两个栈实现一个队列 思路:压入元素直接入stack1,删除元素先判断stack2中是否为空,如果不为空直接弹出:为空则将stack1中的元素取出压入 stack2中再弹出. 代码: import ...

  7. python ——两个队列实现一个栈两个栈实现一个队列

    1.两个队列实现一个栈 进栈:元素入队列A 出栈:判断如果队列A只有一个元素,则直接出队.否则,把队A中的元素出队并入队B,直到队A中只有一个元素,再直接出队.为了下一次继续操作,互换队A和队B. p ...

  8. 两个栈实现一个队列与两个队列实现一个栈

    http://blog.csdn.net/z84616995z/article/details/19204529 两个栈实现一个队列: 原理方法:用一个栈为主栈,一个栈为辅助栈存放临时元素. 入队:将 ...

  9. 【数据结构】(面试题)使用两个栈实现一个队列(详细介绍)

    http://blog.csdn.net/hanjing_1995/article/details/51539578 使用两个栈实现一个队列 思路一: 我们设定s1是入栈的,s2是出栈的. 入队列,直 ...

  10. 两个栈实现一个队列/两个队列实现一个栈

    http://blog.csdn.net/sinat_30472685/article/details/70157227 1两个栈实现一个队列 1.原理分析: 队列的主要操作有两个:入队操作和出队操作 ...

最新文章

  1. python面向对象开发(类的属性-精讲
  2. 160个Crackme011
  3. max日期最大值为0_excel函数技巧:MAX在数字查找中的应用妙招
  4. 提升普适性,阿里云官方SDK发布支持Go语言SDK
  5. java中的祖先类_Java程序公共祖先类-Object
  6. hl3150cdn打印不了照片_揭秘:薇娅力荐国产品牌极印,照片打印机爆卖的秘密
  7. 资深程序员是用五年时间攒够100万,老婆是关键
  8. BorisFX Sapphire 2019 for OFX Mac使用教程
  9. 算法工程师面试基础题目及答案
  10. 学习电商美工设计毕业以后可以干什么
  11. 2020电子设计竞赛G题 - 非接触物体尺寸形态测量
  12. Restful风格的springMVC配搭ajax请求的小例子
  13. CCD相机模数转换芯片时序简介
  14. 【刷题】洛谷 P2675 《瞿葩的数字游戏》T3-三角圣地
  15. 阿里云服务器如何初始化云盘(跟换系统)?初始化云盘和跟换操作系统的区别?
  16. 理想点法matlab p趋向无穷大,Matlab讨论区 - 声振论坛 - 振动,动力学,声学,信号处理,故障诊断 - Powered by Discuz!...
  17. 学英语《每日一歌》之yesterday once more
  18. 前端初学——模拟做的旧版小网站
  19. 使用go实现Aes加解密
  20. 亚马逊新品如何报秒杀?成都星志远

热门文章

  1. 安装debian,服务器选择ftp2.cn
  2. VS C++改变窗体背景色
  3. 随便一个人就能干预大选?
  4. 质子和中子数量的一点疑问
  5. 一个词三个功能,较真人员少啊
  6. Virtual Member Functions(虚拟成员函数)
  7. 坦克世界无法连接服务器未响应,打开坦克世界提示网络异常或者连接不上
  8. discuz字典doc_Discuz! X2.5数据字典
  9. java流程控制if_[Java]Java基本语法结构(运算符,流程控制语句,if语句)
  10. php 5.4 mysql 5.7_致命错误:在将PHP 5.4.22和MySQL 5.5与Apache 2.4.7连接时调用未定义的函数mysqli_connect()...