刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
解答思路:
要实现利用两个栈实现队列,我们可以使用一个输入栈和一个输出栈。当元素入队时,我们将其推入输入栈。当元素出队时,如果输出栈为空,我们将输入栈的所有元素弹出并推入输出栈,然后从输出栈中弹出元素以提供队列的前端。这样,最先入队的元素将是最后一个出队的,符合队列的特性。
最优回答:
以下是利用两个栈实现队列的Java代码示例:
import java.util.Stack;
public class QueueWithTwoStacks {
private Stack<Integer> inputStack;
private Stack<Integer>outputStack;
public QueueWithTwoStacks() {
inputStack = new Stack<>();
outputStack = new Stack<>();
}
// 入队方法
public void enqueue(int item) {
inputStack.push(item);
}
// 出队方法
public int dequeue() {
if(outputStack.isEmpty()){
// 如果输出栈为空,将输入栈的所有元素弹出并推入输出栈
while (!inputStack.isEmpty()){
outputStack.push(inputStack.pop());
}
}
return outputStack.pop(); // 返回输出栈的顶部元素
}
}
本文链接:请编写一段Java代码,实现利用两个栈来模拟队列的操作,包括入队和出队。
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!