两个栈实现队列:先进先出 (FIFO)

栈:先进后出 (LIFO)
队列:先进先出 (FIFO)
Stack
1
2
3
4

push栈

Stack

pop栈

操作 01

入数据 (Push)

push(1, 2, 3, 4)

当需要向队列添加数据时,我们直接将数据压入 push栈

Stack

push栈

Stack
4
3
2
1

pop栈

1
2
操作 02

出数据 (Pop)

pop() -> 1, 2
1

如果 pop栈 为空,则将 push栈 的所有数据全部导入 pop栈

2

如果 pop栈 有数据,则直接从栈顶弹出。

Stack
5
6

push栈

Stack
4
3

pop栈

总结

核心定义

  • push栈 只入数据

    所有入队操作都在此进行

  • pop栈 只出数据

    所有出队操作都在此进行

通过这种方式,原本 LIFO 的栈结构成功模拟了 FIFO 的队列行为。