思路:首先栈是先进后出,队列是先进先出,所以用两个栈来模拟队列,一个用来进,一个用来出,用来进的再弹给用来出的便是队列的顺序了,具体代码如下
class MyQueue {
public:
stack<int> satIn;
stack<int> satOut;
MyQueue() {
}
void push(int x) {
satIn.push(x);
}
int pop() {
if(satOut.empty()){
while(!satIn.empty()){
satOut.push(satIn.top());
satIn.pop();
}
}int result=satOut.top();
satOut.pop();
return result;
}
int peek() {
int res=this->pop();
satOut.push(res);
return res;
}
bool empty() {
return satIn.empty()&&satOut.empty();
}
};