import java.util.Stack;
public class QueueByStack {
public static void main(String[] args) {
QueueByStack q = new QueueByStack();
for (int i = 0; i < 5; i++) {
q.push(i);
}
for (int i = 0; i < 5; i++) {
System.out.print(q.pop());
}
}
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
//使用两个栈实现队列
//元素全压入stack1中
//当需要取出时,先检查stack1,stack2是否为空,stack1有值,就将stack1中所有值全部压入stack2
//这样stack2栈顶元素就是最先放入的元素
//若stack2此时已经有值了,那就直接将stack2栈顶元素取出
public void push(int node) {
stack1.push(node);
}
public int pop() {
if(stack2.empty()){
while (!stack1.empty()){
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}
两个栈实现队列-----牛客笔记
最新推荐文章于 2024-11-10 21:54:30 发布