题目

实现一个先进先出(FIFO)队列结构,响应多行指令执行入队与出队操作。

输入格式:多行输入,指令以空格分隔:1 x 表示将 x 入队;0 表示出队并输出;-1 表示指令序列结束。

输出格式:对每次出队操作,分行输出出队元素的值;若队空则输出 empty。

数据范围与约定:操作总数不超过 1000。

思路与算法

1. 队列特性 FIFO
先进先出,队尾入队、队头出队。

2. collections.deque
使用 collections.deque 能够以 O(1) 复杂度实现高效的 append 与 popleft。

完整程序

from collections import deque
import sys

# 双端队列高效实现先进先出队列
q = deque()
lines = sys.stdin.read().split()
if not lines:
    exit(0)

idx = 0
while idx < len(lines):
    op = int(lines[idx])
    idx += 1
    if op == -1:
        break
    if op == 1:
        # 入队操作
        val = int(lines[idx])
        idx += 1
        q.append(val)
    elif op == 0:
        # 出队操作
        if q:
            print(q.popleft())
        else:
            print('empty')

运行示例

输入:

1 10
1 20
0
0
-1

输出:

10
20