剑指offer——面试题7:用两个栈实现队列

Solution1:

注意栈的基本操作与vector略有不同~

class Solution
{
public:void push(int node) {stack1.push(node);//}int pop() {int ele_top=0;if(!stack2.empty()){//stack2不为空,就删除stack2的栈顶元素ele_top=stack2.top();//top()返回栈顶元素,但不删除stack2.pop();//pop()删除栈顶元素,但不返回该值return ele_top;}else{//stack2为空,要把stack1中的元素依次弹出并压入stack2中int ele_temp=0;while(!stack1.empty()){ele_temp=stack1.top();stack2.push(ele_temp);stack1.pop();}ele_top=stack2.top();//返回栈顶元素,但不删除stack2.pop();//删除栈顶元素,但不返回该值return ele_top;}}private:stack<int> stack1;stack<int> stack2;
};

20180830重做

class Solution {
public:void push(int node) { //元素压入stack1中stack1.push(node);return;}int pop() {if(stack2.empty()) {while (!stack1.empty()) {stack2.push(stack1.top());stack1.pop();}}int temp = stack2.top();stack2.pop();return temp;}private:stack<int> stack1;stack<int> stack2;
};

剑指offer——面试题7:用两个栈实现队列相关推荐

  1. 剑指Offer - 面试题9. 用两个栈实现队列

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

  2. 剑指offer面试题[7]-用两个栈实现队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路: 一个队列包含两个栈,这道题目的意图是要求我们操作两个"先进后出"的栈实现 ...

  3. 剑指offer面试题09. 用两个栈实现队列(队列、栈)

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

  4. 剑指offer第二版-9.用两个栈实现队列

    描述:使用两个栈实现一个队列.队列中实现尾部插入和头部删除函数. 思路:stack1负责插入,stack2负责弹出,如果stack2为空了,将stack1的元素依次弹出并存放到stack2中,之后对s ...

  5. 剑指Offe面试题:用两个栈实现队列

    用两个栈实现队列 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 分析 首先可以自己尝试使用1 2 3少量元素的入栈出栈摸索两个栈的使用,从特殊到一般 ...

  6. 剑指offer(05)用两个栈实现队列

    参考:https://www.cnblogs.com/wanghui9072229/archive/2011/11/22/2259391.html 思路1:始终维护s1作为存储空间,以s2作为临时缓冲 ...

  7. 剑指offer——面试题37:两个链表的第一个公共结点

    剑指offer--面试题37:两个链表的第一个公共结点 20180906整理 Solution1: 时间复杂度为O(n2)O(n2)O(n^2)的垃圾算法 /* struct ListNode {in ...

  8. [剑指offer]面试题37:两个链表的第一个公共结点

    面试题37:两个链表的第一个公共结点 题目:输入两个链表,找出它们的第一个公共结点.链表结点定义如下: struct ListNode {int val;ListNode *next;ListNode ...

  9. 剑指Offer面试题:31.两个链表的第一个公共节点

    一.题目:两个链表的第一个公共节点 题目:输入两个链表,找出它们的第一个公共结点. 链表结点定义如下,这里使用C#语言描述: public class Node{public int key;publ ...

  10. 【剑指offer-Java版】07用两个栈实现队列

    两个栈实现一个队列:stack_1 stack_2 入队操作:直接入stack_1 出队操作:如果stack_2不为空,那么从其中弹出一个作为出队元素,否则将stack_1元素全部依次压入stack_ ...

最新文章

  1. Activiti工作流之流程变量
  2. 短域名php,php生成短域名函数_PHP教程
  3. c 11 主要的新语言特性,关于c ++ 11:有没有办法确定C ++编译器实现的语言特性?...
  4. python django项目实例_最新Django项目实战-从零开发NB的任务平台python视频学习教程...
  5. Restore IP Address-深度优先遍历DFS
  6. 《XHTML》pdf
  7. Win32 SDK创建ListView控件
  8. Pycharm 去掉拼音检查,大小写检查,自动补全不区分大小写
  9. nginx网关与gateway网关的区别
  10. mysql查询工龄在20年以上_数据库查询练习
  11. Visual paradigm试用版绘制ER图时如何去水印
  12. 零基础转行大数据怎么学习?大数据学习路线
  13. 基于php+mysql的校园木本植物检索查询统
  14. 云剪智能混剪软件/批量剪辑工具技术源码框架---- 一键生成上亿条原创视频
  15. 在西安,1000万人的城市,有多少家IT培训机构?
  16. GZHU18级寒假训练:Sagittarius's Trial-J
  17. python3各版本区别-Python各版本之间的区别
  18. springboot通过ITextPDF写入模板并下载
  19. 【行研资料】2020中国汽车用户消费洞察白皮书(2021)——附下载
  20. 【Ansys】错误:The files shown in details are missing from the project.

热门文章

  1. tensorflow随笔——深度学习中GPU型号对比
  2. boost::filesystem::directory_iterator() 出现段错误 Sementation fault
  3. php if多条件_通过几个案例掌握shell编程条件分支结构
  4. kettle 插入更新 数据增量_kettle基于时间戳增量更新
  5. kafka学习_kafka学习(第一章 初识kafka)
  6. python提前退出内层循环,python with提前退出遇到的坑与解决方案
  7. python快速开发框架_GitHub - lee2029/pyui4win: 一个用python实现业务逻辑、用xml和html/css/js描述界面的windows程序的快速开发框架...
  8. ajax post请求怎么传参_如何在$ ajax POST中传递参数?
  9. 仅需10道题轻松掌握Python字符串方法 | Python技能树征题
  10. kotlin泛型_Kotlin泛型