leetcode- 225 Implement Stack using Queues

  • stack:  先进后出

pop();

push();

top();

size();

empty()

  • queue: 先进先出

pop();

push();

front();

back();

size();

empty()

使用队列实现栈:

最重要的是考虑pop函数,因为要pop 最后进入的:

class MyStack {
public:
    /** Initialize your data structure here. */
    MyStack() {
        
    }
    
    /** Push element x onto stack. */
    void push(int x) {
        q.push(x);
    }
    
    /** Removes the element on top of the stack and returns that element. */
    int pop() {
        int n=q.size();
        for(int i=0;i<q.size()-1;i++)
        {
            int t=q.front();
            q.push(t);
            q.pop();
        }
        int t=q.front();
        q.pop();
        return t;
        
    }
    
    /** Get the top element. */
    int top() {
        return q.back();
    }
    
    /** Returns whether the stack is empty. */
    bool empty() {
        return q.empty();
        
    }
    private:
    queue<int> q;
    
};
原文地址:https://www.cnblogs.com/fanhaha/p/7264474.html