leetcode225_用队列实现栈

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了leetcode225_用队列实现栈脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1、题目

leetcode225_用队列实现栈

 

 2、分析

  其实一个队列就可以了,就是我们使用一个队列,当需要查询stack头部的元素的时候,可以将其他元素弹出,然后压如的元素底部。

       这样pop是O(n)的操作,而其他的是O(1)的操作(如果不考虑queue内部实现复杂度的话)

3、代码

class MyStack {
public:
    queue<int> pre;
    MyStack() {

    }
    
    void push(int x) {
        pre.push(x);
    }
    
    int pop() {
        int size = pre.size();
        size =  size-1;
        //弹出n-1个数字,然后重新压如
        while(size){
            int num = pre.front();
            pre.pop();
            pre.push(num);
            size--;
        }
        int num_pre = pre.front();
        pre.pop();
        return num_pre;
    }
    
    int top() {
        int size = pre.size();
        size =  size-1;
        //弹出n-1个数字,然后重新压如
        while(size){
            int num = pre.front();
            pre.pop();
            pre.push(num);
            size--;
        }
        int num_pre = pre.front();
        pre.pop();
        pre.push(num_pre);
        return num_pre;
    }
    
    bool empty() {
        return pre.empty();
    }
};

/**
 * Your MyStack object will be instantiated and called as such:
 * MyStack* obj = new MyStack();
 * obj->push(x);
 * int param_2 = obj->pop();
 * int param_3 = obj->top();
 * bool param_4 = obj->empty();
 */

 

脚本宝典总结

以上是脚本宝典为你收集整理的leetcode225_用队列实现栈全部内容,希望文章能够帮你解决leetcode225_用队列实现栈所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: