T6-利用栈实现队列

题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32M,其他语言64M

解题思路

栈的特点:先进后出
队列:先进先出
利用栈实现队列,也就是每次出栈时,将栈里的元素顺序颠倒一下即可,那么引入一个中间栈就很容易实现了。
两个栈(一个入队,一个出队):
入队操作:将元素压入栈1
出队操作:将栈1的元素出栈,再依次压入栈2,这样栈1的栈底也就成了栈2的栈顶,再对栈2出栈即可。
*注意一下,出队的逻辑规律,要将栈1的元素倒入栈2,一定要先保证栈2空。

源代码

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

    int pop() {
        int val;
        if(stack2.empty())
        {
            int k;
            while(!stack1.empty())
            {
                k=stack1.top();
                stack2.push(k);
                stack1.pop();
            }
        }
        val=stack2.top();
        stack2.pop();
        return val;
    }

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

补充

原c++栈的方法的基本用法:

  • push(): 向栈内压入一个成员;
  • pop(): 从栈顶弹出一个成员;
  • empty(): 如果栈为空返回true,否则返回false;
  • top(): 返回栈顶,但不删除成员;
  • size(): 返回栈内元素的大小;

c++的栈在定义时,其pop()弹出的成员是不能直接获取其值得,需要先用top()获取栈顶值,再pop()出栈。

微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值