FIRST IN, FIRST OUT (FIFO) DATA CHANNEL
如果说栈是单向深井,那么队列 (Queue) 就是一条**单向传送带**。数据永远从传送带起点(REAR / 队尾)被推入,然后像水流一样把前面的数据不断往终点(FRONT / 队头)挤压,最后从终点离开。
最先进入信道的数据,必须最先被传输出去。 你的打印机任务、操作系统进程调度、以及游戏里的匹配排队,全都是由它支撑!
移除并返回最右端的 FRONT 元素。
只查看最前方的即将被处理的数据。
真实的内存不会像水流一样整体移动(那极其消耗性能 O(N))。它实际上是通过移动 `FRONT` 和 `REAR` 两个指针在固定内存块中打转(环形队列)来实现 O(1) 的伪位移。
打破连续空间的束缚。入队时,在宇宙任意角落新建一个分离舱,让原本的后端节点指向它。出队时,直接移除 FRONT 节点。因为不用整体搬移数据,所以也是完美的 O(1)。
大厂经典面试题:用两个“后进先出”的栈拼出“先进先出”。入队全压入 IN栈。出队时,若 OUT栈 为空,则将 IN 栈全数倒入 OUT 栈(实现完美的反转顺序),再弹出。
新任务从左侧涌入排队,CPU 则不断从右侧的最前端取走任务进行处理。