1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class MyQueue { private: stack<int> inStack, outStack; void in2out() { while (!inStack.empty()) { outStack.push(inStack.top()); inStack.pop(); } } public: MyQueue() {} void push(int x) { inStack.push(x); } int pop() { if (outStack.empty()) in2out(); int x = outStack.top(); outStack.pop(); return x; } int peek() { if (outStack.empty()) in2out(); return outStack.top(); } bool empty() { return inStack.empty() && outStack.empty(); } };
|