/**
* @Author: subd
* @Date: 2019/9/5 8:38
* 用栈来实现队列
*/
public class StackImplementQueue {
private Stack<Integer> stackA = new Stack<>();
private Stack<Integer> stackB = new Stack<>();
/**
* 入栈操作
*
* @param element 入队元素
*/
public void enQueue(int element) {
stackA.push(element);
}
/**
* 出队操作
*
* @return 出队元素
*/
public Integer deQueue() {
if (stackB.isEmpty()) {
if (stackA.isEmpty()) {
return null;
}
transfer();
}
return stackB.pop();
}
/**
* 栈A元素转移到栈B
*/
private void transfer() {
while (!stackA.isEmpty()) {
stackB.push(stackA.pop());
}
}
public static void main(String[] args) {
StackImplementQueue stackImplementQueue = new StackImplementQueue();
stackImplementQueue.enQueue(1);
stackImplementQueue.enQueue(2);
stackImplementQueue.enQueue(3);
System.out.println(stackImplementQueue.deQueue());
System.out.println(stackImplementQueue.deQueue());
stackImplementQueue.enQueue(4);
System.out.println(stackImplementQueue.deQueue());
System.out.println(stackImplementQueue.deQueue());
}
}
用栈实现队列
最新推荐文章于 2022-10-03 11:53:47 发布
本文介绍了一种使用两个栈实现队列的方法。通过将元素压入栈A,再将栈A的元素依次弹出并压入栈B,实现队列的先进先出特性。当需要出队时,检查栈B是否为空,若为空则从栈A转移所有元素至栈B,最后弹出栈B的顶部元素完成出队操作。
4803

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



