1. 程式人生 > >劍指offer第五題【用兩個棧實現佇列】c++實現

劍指offer第五題【用兩個棧實現佇列】c++實現

題目描述

用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。 這個題解法應該比較多 我是用stack1存的push就是正常push,主要改寫pop()方法。 pop()就把stack1全部放入stack2取出棧頂的值然後刪掉,最後再把stack2放到stack1。
class Solution
{
public:
    void push(int node) {
        stack1.push(node);
    }
 
    int pop() {
        int res;
        while(!stack1.empty()){
            stack2.push(stack1.top());
            stack1.pop();
             
        }
        res=stack2.top();
        stack2.pop();
        while(!stack2.empty()){
            stack1.push(stack2.top());
            stack2.pop();
        }
        return res;
         
    }
 
private:
    stack<int> stack1;
    stack<int> stack2;
};