刷成功的第一题 打个call
package zuotext;
import java.util.Stack;
public class QueueText1 {
public static void main(String[] args) {
Queue1 myqueue = new Queue1();
System.out.println("3,2,6,1,9 将进入队中");
myqueue.add(3);
myqueue.add(2);
myqueue.add(6);
myqueue.add(1);
myqueue.add(9);
System.out.println(myqueue.peek());
System.out.println("======");
System.out.println(myqueue.poll());
System.out.println("======");
System.out.println(myqueue.peek());
}
}
class Queue1 {
// 先创建两个栈 stack1,Stack2
private Stack<Integer> stack1;
private Stack<Integer> stack2;
Queue1() {
this.stack1 = new Stack<Integer>();
this.stack2 = new Stack<Integer>();
}
// 重写queue的add,poll,peek三个函数
// 重写add
// 将指定的元素插入到此队列中,如果可以立即执行此操作而不违反容量限制,
// true在成功后返回 IllegalStateException如果当前没有可用空间,则抛出IllegalStateException。
boolean add(int newNum) {
this.stack1.push(newNum);
return true;
}
public void change() {
while (!this.stack1.isEmpty()) {
int value = this.stack1.pop();
this.stack2.push(value);
}
}
// 重写poll函数
public int poll() {
if (this.stack2.isEmpty()) {
return 0;
} else {
change();
return this.stack2.pop();
}
}
// 重写peek 函数
public int peek() {
change();
if (this.stack2.isEmpty()) {
return 0;
} else {
return this.stack2.peek();
}
}
}
测试结果