Java(三)如何用栈实现队列

如何用栈实现一个队列

栈:先进后出
队列:先进先出
思路:一个栈是无法实现队列操作的,所以我们需要考虑是否可以用两个栈去实现


Java(三)如何用栈实现队列
既然这时候我们有两个栈,可以让其中一个栈作为队列的入口,负责插入新元素
另一个栈作为队列的出口,负责移除老元素
Java(三)如何用栈实现队列


两个栈如何进行关联
Java(三)如何用栈实现队列
Java(三)如何用栈实现队列


这时候我们希望最先进入的最先出去
解决方法:让栈A中的所有元素按顺序出栈,再按照出栈顺序压入栈B。
这样一来元素从栈A弹出并压入栈B的顺序是3,2,1
和当初进入栈A的顺序1,2,3是相反的

Java(三)如何用栈实现队列
Java(三)如何用栈实现队列
Java(三)如何用栈实现队列

代码实现