由两个栈组成的队列
编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek)
class TwoSatckQueue {
private Stack<Integer> StackPush;
private Stack<Integer> StackPop;
public TwoSatckQueue() {
StackPush = new Stack<Integer>();
StackPop = new Stack<Integer>();
}
public void add(int pushInt) {
StackPush.add(pushInt);
}
public int poll() {
if (StackPush.isEmpty() && StackPop.isEmpty()) {
throw new RuntimeException("The Stack is empty");
} else if (StackPop.isEmpty()) {
while (!StackPush.isEmpty()) {
StackPop.push(StackPush.pop());
}
}
return StackPop.pop();
}
// 返回队列首的元素
public int peek() {
if (StackPush.isEmpty() && StackPop.isEmpty()) {
throw new RuntimeException("The Stack is empty");
} else if (StackPop.isEmpty()) {
while (!StackPush.isEmpty()) {
StackPop.push(StackPush.pop());
}
}
return StackPop.peek();
}
}