232. 用栈实现队列java
时间: 2025-01-24 10:40:42 AIGC 浏览: 41
### 使用栈实现队列的Java代码示例
为了实现在Java中使用两个栈来模拟队列的行为,可以创建一个名为`MyQueue`的类。这个类内部维护两个栈:`A`用于入队操作,`B`用于出队操作。
#### 类定义与初始化
```java
import java.util.Stack;
class MyQueue {
private Stack<Integer> A;
private Stack<Integer> B;
/** Initialize your data structure here. */
public MyQueue() {
A = new Stack<>();
B = new Stack<>();
}
```
#### 入队操作 `push`
当向队列添加元素时,首先将所有元素从栈`B`转移到栈`A`,再把新元素压入栈`A`底部,最后再次反转回栈`B`以保持顺序一致[^4]。
```java
/** Push element x to the back of queue. */
public void push(int x) {
while (!B.isEmpty()) {
A.push(B.pop());
}
A.push(x);
while (!A.isEmpty()) {
B.push(A.pop());
}
}
```
#### 出队操作 `pop`
移除并返回队首元素即为栈`B`顶部的元素。
```java
/** Removes the element from in front of queue and returns that element. */
public int pop() {
return B.pop();
}
```
#### 获取队首元素 `peek`
查看但不删除队首元素同样对应于访问栈`B`顶端而不弹出它。
```java
/** Get the front element. */
public int peek() {
return B.peek();
}
```
#### 判断队列是否为空 `empty`
只要栈`B`为空,则整个队列也为空。
```java
/** Returns whether the queue is empty. */
public boolean empty() {
return B.isEmpty();
}
}
```
通过上述方式实现了基于双栈结构下的基本队列功能,在实际应用中可以根据具体场景调整优化策略,比如减少不必要的数据搬移次数等。
阅读全文
相关推荐




















