/**
* 用队列实现后入先出(LIFO)的栈
* void push(int x) 将元素 x 压入栈顶。
* int pop() 移除并返回栈顶元素。
* int top() 返回栈顶元素。
* boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。
*/
public class MyStack {
/**
* queue1用于存储栈内的元素,queue2作为入栈操作的辅助队列
*/
Queue<Integer> queue1;
Queue<Integer> queue2;
MyStack(){
queue1 = new LinkedList<>();
queue2 = new LinkedList<>();
}
public void push(int x){
queue2.offer(x);
while(queue1 != null)
queue2.offer(queue1.poll());
Queue temp = queue1;
queue1 = queue2;
queue2 = temp;
}
public int pop(){
return queue1.poll();
}
public int top(){
return queue1.peek();
}
public boolean empty(){
return queue1.isEmpty();
}
}
算法通关村—用队列实现栈问题解析
使用队列实现Java栈的后进先出功能
最新推荐文章于 2025-12-08 20:31:24 发布
本文介绍如何利用Java中的队列实现一个模拟栈的数据结构,通过`push`方法将元素后入`queue2`,然后逐步将`queue1`的元素转移至`queue2`实现先进先出。`pop`、`top`和`empty`方法分别对应栈顶元素的移除、查看和判断栈是否为空。
945

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



