栈实现队列
整体思路就是两个栈中的元素相互倒,来实现队列先进先出、后进后出的模式
- s1是入栈的,s2是出栈的。
- 入队列,直接压到s1是就行了
- 出队列,先把s1中的元素全部出栈压入到s2中,弹出s2中的栈顶元素;再把s2的所有元素全部压回s1中
图解1:
图解2:
图解3:
队列实现栈
- q1是专职进出栈的,q2只是个中转站
- 入栈:直接入队列q1即可
- 出栈:把q1的除最后一个元素外全部转移到队q2中,然后把刚才剩下q1中的那个元素出队列。之后把q2中的全部元素转移回q1中
图解1:
图解2:
参考链接:
https://www.cnblogs.com/kaituorensheng/archive/2013/03/02/2939690.html