用两个栈实现队列

原创 2015年11月17日 20:37:17
题目描述


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


C/C++代码:

class Solution
{
public:
    void push(int node)
    {
        stack1.push(node);
    }

    int pop()
    {
        if(stack2.empty())
        {
            if(stack1.empty())
            {
                return 0;
            }
            else
            {
                while(!stack1.empty())
                {
                    stack2.push(stack1.top());
                    stack1.pop();
                }
            }
        }
        int result = stack2.top();
        stack2.pop();
        return result;
    }

private:
    stack<int> stack1;
    stack<int> stack2;
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

Python :用两个栈实现队列

牛客网上的剑指 offer的在线编程: 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 # -*- coding:utf-8 -*- class...
  • Lynette_bb
  • Lynette_bb
  • 2017年07月13日 21:17
  • 729

两个栈实现队列+两个队列实现栈----java

两个栈实现队列+两个队列实现栈----java 一.两个栈实现一个队列 思路:所有元素进stack1,然后全部出stack1并进入stack2.实现队列的先进先出即:若stack2非空,我们需要的恰好...
  • u010093630
  • u010093630
  • 2014年08月08日 00:52
  • 10045

C++算法之 两个队列实现一个栈

题目:用两个队列实现一个栈 算法思路: 现有两个队列q1与q2,入栈:如果q1与q2都为空,那么我们选择q1入栈也就是入队列,比如q1入栈 1 2 3 4 ;现在要出栈,后进先出那么4要出栈。但是...
  • djb100316878
  • djb100316878
  • 2014年12月09日 10:48
  • 9883

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

问题1:用两个栈实现一个队列,实现队列的push和delete操作 栈的特性是先进后出(FILO),队列的特性是先进先出(FIFO),在实现delete时,我们的难点是如何将栈中最底层的数据拿出来,...
  • zw_1510
  • zw_1510
  • 2016年07月17日 00:32
  • 4094

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

使用两个栈实现一个队列思路一:我们设定s1是入栈的,s2是出栈的。入队列,直接压到s1即可出队列,先把s1中的元素倒入到s2中,弹出s2中的栈顶元素;再把s2的剩余元素全部倒回s1中。650) thi...
  • hanjing_1995
  • hanjing_1995
  • 2016年05月30日 17:18
  • 1164

用两个队列模拟一个栈

用两种方法实现了用两个队列模拟一个栈的操作。一种的入栈时间复杂度为O(1),出栈O(n),一种入栈O(n),出栈O(1)。 并且附有源代码方便今后阅读和与大家交流。...
  • yin1203014
  • yin1203014
  • 2015年07月25日 23:23
  • 1531

C++两个栈实现一个队列和两个队列实现一个栈

今天用C++实现了下两个栈模拟一个队列和两个队列模拟一个栈!代码可能有很多漏洞,如果读者发现问题, 可以及时反馈,非常感谢!!!         代码如下: #include #include...
  • qianghaohao
  • qianghaohao
  • 2016年05月04日 22:11
  • 885

剑指Offer面试题7(Java版):用两个栈实现队列与用两个队列实现栈

题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deletedHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。 我们通过一个具体的例子来分析该队列插...
  • jsqfengbao
  • jsqfengbao
  • 2015年07月27日 19:25
  • 2536

剑指offer《面试题7:用两个栈实现队列》及用两个队列实现一个栈

栈和队列是两个特点相反的数据结构,但联系非常密切。 栈的特点就是“后进先去”,即是最后被压入(push)的栈元素会被第一个弹出(pop)。 队列的特点就是“先进先出”,即是第一个进...
  • SingleLegCat
  • SingleLegCat
  • 2015年07月15日 00:40
  • 1374

【C++面试题】利用两个栈实现1个队列

1、题目   利用两个栈实现一个队列    2、要求   只能使用栈的pop(),top()和push(),以及测试栈是否为空empty()四个操作. 来实现队列的empty(), ...
  • liulongling
  • liulongling
  • 2016年02月19日 11:03
  • 1924
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用两个栈实现队列
举报原因:
原因补充:

(最多只允许输入30个字)