llllmz

导航

225. 用队列实现栈

class MyStack {
public:
    MyStack() 
        : q1(queue<int>()), q2(queue<int>())
    {
    }
    
    void push(int x) {
        q1.push(x);
    }
    
    int pop() {
        int ret;
        if(q1.size() == 1){
            ret = q1.front();
            q1.pop();
        }else{
            int n = q1.size() - 1;
            while(n > 0){           //将多余元素移到q2
                q2.push(q1.front());
                q1.pop();   
                --n;
            }
            ret = q1.front();
            q1.pop();
            while(!q2.empty()){     //移回q1
                q1.push(q2.front());
                q2.pop();
            }
        }
        return ret;
    }
    
    int top() {
        int ret;
        if(q1.size() == 1){
            ret = q1.front();
        }else{
            int n = q1.size() - 1;
            while(n > 0){
                q2.push(q1.front());
                q1.pop();
                --n;
            }
            ret = q1.front();
            q1.pop();
            q2.push(ret);
            q1 = q2;
            while(!q2.empty()){
                q2.pop();
            }
        }
        return ret;
    }
    
    bool empty() {
        return q1.empty();
    }
    
private:
    queue<int> q1;
    queue<int> q2;
};

 

最近学习很不顺心,感觉自己很没用,学习前端感觉也好难好难,有种学不会的感觉,但我知道还很早,路还有很远,相信自己一定可以做到的。

 

posted on 2024-10-23 23:01  神奇的萝卜丝  阅读(1)  评论(0编辑  收藏  举报