每日一题:如何用栈实现队列
文章目录
一、解题思路
- 栈的特点是陷入后出,出入元素都在同一端。
- 队列的特点是先入先出,出入元素在队头和队尾两端。
- 我们可以使用两个栈来模拟一个队列。即让其中一个栈作为队列的入口,负责插入新元素。一个栈作为队列的出口,负责移除老元素。
例如,在栈中插入数字1,2,3,那么出栈的顺序会为3,2,1,将出栈的数顺序插入另一个栈中,那么当另一个栈做出栈操作时,出栈的顺序为1,2,3。如此,便实现了使用两个栈模拟一个队列。
二、实现代码
//如何用栈实现队列
public class StackImplQueue {
//定义两个栈来实现队列,一个负责插入新元素,一个负责移除老元素
private Stack<Integer> stack1 = new Stack<>();
private Stack<Integer> stack2 = new Stack<>