class MyStack {
private Queue<Integer> a;//输入队列
private Queue<Integer> b;//输出队列
public MyStack() {
a = new LinkedList<>();
b = new LinkedList<>();
}
public void push(int x) {
a.offer(x);
// 将b队列中元素全部转给a队列
while(!b.isEmpty())
a.offer(b.poll());
// 交换a和b,使得a队列没有在push()的时候始终为空队列
Queue temp = a;
a = b;
b = temp;
}
public int pop() {
return b.poll();
}
public int top() {
return b.peek();
}
public boolean empty() {
return b.isEmpty();
}
}
算法系列------用队列实现栈
最新推荐文章于 2024-11-24 08:58:09 发布
本文介绍了一种使用两个队列实现栈数据结构的方法。通过在push操作时反转队列元素,确保了弹出操作的效率。该实现展示了如何在不使用传统栈结构的情况下,利用队列实现栈的功能。
2742

被折叠的 条评论
为什么被折叠?



