美文网首页工作生活
9.两个栈实现队列

9.两个栈实现队列

作者: HamletSunS | 来源:发表于2019-06-30 18:04 被阅读0次

思路:

  • 栈是先进后出的数据结构,把1个栈A的内容出栈后放入另1个栈B的话,栈B的出栈顺序从逻辑上看就是栈A的入栈顺序,变成了先进先出
  • 设计两个操作:入队、出队
  • 入队:放入栈A
  • 出队:先判栈B是否为空,不为空直接出栈;为空的话把栈A元素全部导入到栈B中,再执行出栈操作
class Solution
{
public:
    void push(int node) {
       stack2.push(node);
    }

    int pop() {
        if(stack1.size()!=0){
            int ret=stack1.top();
            stack1.pop();
            return ret;
        }
        else if(stack1.size()==0 && stack2.size()!=0){
            while(!stack2.empty()){
                stack1.push(stack2.top());
                stack2.pop();
            }
            int ret=stack1.top();
            stack1.pop();
            return ret;
        }
        else
            return -1;
    }

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

相关文章

  • 剑指offer之栈队列堆

    [TOC] 9. 用两个栈实现队列 用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。 mysolu...

  • 栈和队列

    两个栈实现队列 两个队列实现栈

  • 栈&队列

    一、栈&队列总结 栈/队列的应用接雨水验证栈序列滑动窗口的最大值 栈/队列的特殊实现用两个栈实现队列用两个队列实现...

  • 队列、栈

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

  • 面试题9: 用两个栈实现队列

    9-1 用两个栈实现队列 9-2 用两个队列实现栈

  • 手撕栈队列

    【面试题07:用两个栈实现队列】 题目:利用两个栈实现队列的插入,取队首,判断非空等函数。拓展:用两个队列实现栈,...

  • 用两个栈实现队列,用两个队列实现堆栈

    参考:剑指Offer面试题7(Java版):用两个栈实现队列与用两个队列实现栈 用两个栈实现队列stack1作为入...

  • 栈和队列的相互实现

    两个栈实现队列: 一个栈用来入,一个栈用来出 两个队列实现栈: 入栈的时候正常存入一个队列,出栈的时候用另一个队列...

  • Swift-两个栈实现队列

    题目:两个栈实现队列,栈是先入后出,队列是先入先出,两个栈可以利用这个特点实现队列. 核心代码: `class ...

  • LeetCode 每日一题 [43] 用两个栈实现队列

    LeetCode 用两个栈实现队列 [简单] 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appen...

网友评论

    本文标题:9.两个栈实现队列

    本文链接:https://www.haomeiwen.com/subject/tyibcctx.html