思路
这是一道模拟题,不涉及到具体算法,考察的就是对栈和队列的掌握程度。
使用栈来模式队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈一个输入栈,一个输出栈,这里要注意输入栈和输出栈的关系。
class MyQueue {
Stack<Integer> in;
Stack<Integer> out;
public MyQueue() {
in=new Stack<Integer>();
out=new Stack<Integer>();
}
public void push(int x) {
in.push(x);
}
public int pop() {
turn();
return out.pop();
}
public int peek() {
turn();
return out.peek();
}
public boolean empty() {
return in.isEmpty()&&out.isEmpty();
}
public void turn(){
if(!out.isEmpty()){
return;
}
while(!in.isEmpty()){
out.push(in.pop());
}
}
}