两个栈实现一个队列

package twostack;

import java.util.Stack;

class QuenenStack {
Stack<Object> a;
Stack<Object> b;

public QuenenStack(Stack<Object> a,Stack<Object> b) {
super();
this.a = a;
this.b = b;
}
//入队列
public void push(Object data) {
a.push(data);
}

//出队列
public Object pop() {
//把a栈倒入b栈
while(!a.empty()) {
b.push(a.pop());
}
//pop出b栈栈顶元素
Object o=b.pop();
//把b栈倒入a栈
while(!b.empty()) {
a.push(b.pop());
}
return o;
}

}
public class TwoStackToQueue {

public static void main(String[] args) {
Stack<Object> a=new Stack<Object>();
Stack<Object> b=new Stack<Object>();
QuenenStack qs=new QuenenStack(a,b);
qs.push(1);
qs.push(2);
qs.push(3);
System.out.println(qs.pop());
System.out.println(qs.pop());
qs.push(4);
System.out.println(qs.pop());
System.out.println(qs.pop());
}

}

猜你喜欢

转载自www.cnblogs.com/smailjunk/p/8911086.html