zoukankan      html  css  js  c++  java
  • 两个栈实现队列

    1、题目

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

    2、说明

    (1)栈用stack表示,两个栈分别是stack1和stack2

    (2)入栈 stack.push();出栈 stack.pop()

    (3)入队:

      stack1.push()

    (4)出队

      出队分为两种情况,

        stack2为空,直接将stack1中的元素pop出来,然后push到stack2中,最后将stack2中的元素pop出来;

        stack2非空,首先将stack2中的元素pop出来,然后再讲stack1中的元素pop出来,将stack1pop出来的元素push到stack2中,最后pop出stack2中的元素。

    3、核心代码

    class Solution
    {
        
    //用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
    public:
        void push(int node) {
            stack1.push(node);//入栈
        }
    
        int pop() {
            //两种情况:stack2为空,先从stack1pop出的元素push到stack2,然后stack2 pop;stack2非空,直接pop
            if(stack2.empty())
            {
                while(!stack1.empty())
                {
                    stack2.push(stack1.top());
                    stack1.pop();
                }
            }        
            int p=stack2.top();
            stack2.pop();
            return p;
        }
    
    private:
        stack<int> stack1;
        stack<int> stack2;
    };
  • 相关阅读:
    常用命令之mongodb
    常用之juc
    常用命令
    WSL2错误Error 0x1bc解决
    sudo:Unable to stat '/etc/sudoers': Permission Denied 解决办法
    CPIO写入ROOTFS到磁盘分区
    getElementsByClassName
    PetaLinux通过fw_printenv访问u-boot中的环境变量
    1. 两数之和
    find xargs grep查找文件及文件内容
  • 原文地址:https://www.cnblogs.com/qianwangxingfu/p/13738538.html
Copyright © 2011-2022 走看看