算法训练day10: LeetCode 232.225.
232.用栈实现队列
题目
题解
-
class MyQueue { public: stack<int> stIn; stack<int> stOut; MyQueue() { } void push(int x) { stIn.push(x); } int pop() { if (stOut.empty()) { while (!stIn.empty()) { stOut.push(stIn.top()); stIn.pop(); } } int result = stOut.top(); stOut.pop(); return result; } int peek() { int res = this->pop(); stOut.push(res); return res; } bool empty() { return (stIn.empty() && stOut.empty()); } };
-
使用输入栈和输出栈。注意输出栈是否为空的判断。
225.用队列实现栈
题目:
题解:
-
class MyStack { public: queue<int> que; MyStack() { } void push(int x) { que.push(x); } int pop() { int size = que.size(); while (--size) { que.push(que.front()); que.pop(); } int result = que.front(); que.pop(); return result; } int top() { return que.back(); } bool empty() { return que.empty(); } };
总结
回顾了栈和队列的特性。用输入栈和输出栈模拟队列;以队列循环的方式模拟栈。
标签:int,pop,que,empty,stOut,push,day10,LeetCode,232 From: https://www.cnblogs.com/High-source/p/17709261.html