劍指offer第五題【用兩個棧實現佇列】c++實現
阿新 • • 發佈:2019-02-13
題目描述
用兩個棧來實現一個佇列,完成佇列的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; };