java 代码如何实现 用两个栈,一个用来存储数据, 一个用来读取数据
时间: 2024-02-11 12:10:35 浏览: 35
可以使用Java中的Stack类来实现两个栈,一个用来存储数据,一个用来读取数据。具体实现如下:
```java
import java.util.Stack;
public class TwoStacks {
private Stack<Integer> stack1; // 存储数据的栈
private Stack<Integer> stack2; // 读取数据的栈
public TwoStacks() {
stack1 = new Stack<>();
stack2 = new Stack<>();
}
// 向存储数据的栈中压入元素
public void push(int x) {
stack1.push(x);
}
// 从读取数据的栈中弹出元素
public int pop() {
if (stack2.empty()) { // 如果读取数据的栈为空,则先将存储数据的栈中的元素全部弹出并压入读取数据的栈中
while (!stack1.empty()) {
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}
```
以上实现中,push操作直接向存储数据的栈中压入元素,而pop操作需要先判断读取数据的栈是否为空,如果为空,则将存储数据的栈中的元素全部弹出并压入读取数据的栈中,然后再从读取数据的栈中弹出元素。这样,就可以实现用两个栈,一个用来存储数据,一个用来读取数据的功能。
阅读全文