目录
栈和队列的问题在面试中经常会被问到,本篇文章教大家如何用两个栈模拟一个队列出来。
先来讲一下栈和队列的基本特点
栈:先进后出,只能在栈顶进行操作。
如:向栈内输入1,2,3,4,5,那么输出则为5,4,3,2,1。就好像一个电梯,先进去的人后出来,进和出都是在末尾操作。
队列:先进先出,队尾插入,队头删除。
如:向队内输入1,2,3,4,5,那么输出也为1,2,3,4,5。把入栈出栈比做出入电梯的话,入队出队更像是在排队,来的晚的人只能排在队伍的末尾。
大体思路:
第一步:定义两个栈,栈1和栈2。
让所有的数据入栈1,这里举例为1,2,3,4,5。
此时栈1的内容为1,2,3,4,5。栈2为空。
第二步:让所有的数据出栈1,入栈2。
此时栈1变成了空栈,栈二的内容为5,4,3,2,1。
第三步:让所有的数据出栈2,即可完成队列的