题目要求
时间限制:1秒 空间限制:32768K
本题知识点: 队列 栈
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
代码实现
两个栈:stack1当作入栈、stack2当作出栈。
Pop操作考虑出栈是否为空,如果为空,就要将入栈的元素全部“倒入”到出栈里面,这样能保证队列的顺序。
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
if(stack2.empty()&&stack1.empty())return 0;
else if(stack2.empty()){
while(!stack1.empty()){
stack2.push(stack1.top());
stack1.pop();
}
}
int top=stack2.top();
stack2.pop();
return top;
}
private:
stack<int> stack1;//作为入栈
stack<int> stack2;//作为出栈
};