3.5 用兩個棧實現佇列
阿新 • • 發佈:2018-12-25
用兩個棧實現佇列
用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。
class Queue { public: void push(int node) { stack1.push(node); } int pop() { if (stack1.empty()) { return -1; } // 確保stack2 為空 while (!stack2.empty()) { stack2.pop(); } // stack1中的資料全部倒入stack2中 while (!stack1.empty()) { stack2.push(stack1.top()); stack1.pop(); } // 獲取stack2的棧頂元素 int val = stack2.top(); stack2.pop(); // stack2中的資料全部倒回stack1中 while (!stack2.empty()) { stack1.push(stack2.top()); stack2.pop(); } return val; } private: stack<int> stack1; stack<int> stack2; };