用两个栈实现一个队列。用Java语言进行代码的编写
时间: 2024-02-11 12:13:53 浏览: 94
好的,下面是用两个栈实现一个队列的Java代码实现:
```java
import java.util.Stack;
public class QueueWithTwoStacks<T> {
private Stack<T> inStack = new Stack<>();
private Stack<T> outStack = new Stack<>();
public void enqueue(T item) {
inStack.push(item);
}
public T dequeue() {
if (outStack.isEmpty()) {
while (!inStack.isEmpty()) {
outStack.push(inStack.pop());
}
}
return outStack.pop();
}
public boolean isEmpty() {
return inStack.isEmpty() && outStack.isEmpty();
}
public int size() {
return inStack.size() + outStack.size();
}
}
```
其中,inStack为入栈,outStack为出栈。enqueue()方法用于将元素加入队列,直接入栈inStack中即可。dequeue()方法用于将元素从队列中取出,首先判断outStack是否为空,如果为空,则将inStack中的元素依次弹出并压入outStack中,然后从outStack中取出队首元素即可。isEmpty()方法用于判断队列是否为空,size()方法用于返回队列中元素的个数。
阅读全文