一、基本概念
1、栈stack:先进后出 FILO
2、队列queue:先进先出 FIFO
二、两个栈实现一个队列
1、入队:push到栈1
2、出队:
(1)若栈2为空,push到栈2,再从栈2 依次pop
(2)若栈2非空,先将栈2 数据依次pop,直到为空,再执行步骤(1)
三、两个队列实现一个栈
1、入栈:push数据 “abc” 到一个不为空的队列,若全为空,即均可
2、 出栈:
(1) 将队1数据(除了最后一个)“ab” push到队2(空)中,将队1中仅剩的一个数据 “c” pop出队,即实现后进先出
(2)同理继续出栈, 将队2数据(除了最后一个)“a” push到队1(空)中,将队2中仅剩的一个数据 “b” pop出队
3、有新数据入栈,push数据 “d” 到一个不为空的队列,队1d
4、出栈,同理, 将队1数据(除了最后一个)“a” push到队2(空)中,将队1中仅剩的一个数据 “d” pop出队