【题目】
编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)
【代码】
package chapter_1_stackandqueue;
import java.util.Stack;
public class problem02 {
public static class TwoStackQueqe{
private Stack<Integer> stackPush;
private Stack<Integer> stackPop;
public TwoStackQueqe() {
this.stackPush = new Stack<Integer>();
this.stackPop = new Stack<Integer>();
}
public void add(int pushInt) {
stackPush.push(pushInt);
}
public int poll() {
if (stackPush.empty()&&stackPop.empty()) {
throw new RuntimeException("Your stack is empty");
}else if (stackPop.empty()){
while(!stackPush.empty()) {
stackPop.push(stackPush.pop());
}
}
return stackPop.pop();
}
public int peek() {
if (stackPush.empty()&&stackPop.empty()) {
throw new RuntimeException("Your stack is empty");
}else if (stackPop.empty()){
while(!stackPush.empty()) {
stackPop.push(stackPush.pop());
}
}
return stackPop.peek();
}
}
public static void main(String[] args) {
TwoStackQueqe test = new TwoStackQueqe();
test.add(1);
test.add(2);
test.add(3);
test.add(4);
test.add(5);
System.out.println(test.poll());
System.out.println(test.peek());
System.out.println(test.poll());
System.out.println(test.peek());
System.out.println(test.poll());
System.out.println(test.peek());
System.out.println(test.poll());
System.out.println(test.peek());
System.out.println(test.poll());
System.out.println(test.peek());
System.out.println(test.poll());
}
}