天天看點

劍指Offer(牛客版)--面試題9:用兩個棧實作隊列

劍指Offer(牛客版)--面試題9:用兩個棧實作隊列

題目:用兩個棧來實作一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。

完整代碼:

class Solution
{
public:
    void push(int node) {
       //将元素添加到stack1裡
       stack1.push(node); 
    }

    int pop() {
        //定義臨時變量
        int data;
        //如果stack2裡沒有元素
        if(stack2.size()<=0)
        {
            //對于stack1中的全部元素
            while(stack1.size()>0)
            {
                //取棧頂元素
                data=stack1.top();
                //将棧頂元素取出
                stack1.pop();
                //将取出的元素壓入到stack2中
                stack2.push(data);
            }
        }
        
        //否則,從stack2彈出的元素即是隊列元素
        //取stack2 得棧頂元素
        data=stack2.top();
        // 将元素彈出
        stack2.pop();
        //傳回删除元素
        return data;
    }

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