根据输入的操作命令,操作队列:1 入队、2 出队并输出、3 计算队中元素个数并输出。1≤N≤50。
第一行一个数字 N。 接下来 N 行,每行第一个数字为操作命令:1入队、2 出队并输出、3 计算队中元素个数并输出。
若干行每行显示一个 2 或 3 命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。
输入
7
1 19
1 56
2
3
2
3
2
输出
19
1
56
0
no
#用 queue 实现
from queue import * #导入库
q=Queue() #创建队列对象
n=eval(input()) #eval() 函数用来执行一个字符串表达式,并返回表达式的值。
for i in range(n):s=list(map(int,input().split())) #读入每行数据,存放在列表s内if s[0]==1: #判断命令:入队q.put(s[1])elif s[0]==2: #判断命令:出队并输出if not q.empty(): #判断队列是否为空a=q.get() #队头删除并输出print(a)else:print('no') #为空则输出 nobreakelif s[0]==3: #判断命令:计算元素个数输出print(q.qsize())
from collections import * #导入库
n=eval(input())
q=deque()
for i in range(n):s=list(map(int,input().split()))if s[0]==1:q.append(s[1])elif s[0]==2:if len(q)>0:a=q.popleft() #出队,从队头删除一个元素,并返回该元素print(a)else:print('no')breakelif s[0]==3:print(len(q))
n=eval(input())
q=[]
for i in range(n):s=list(map(int,input().split()))if s[0]==1:q.append(s[1])elif s[0]==2:if len(q)>0:q.reverse() #对列表中的元素进行反向排列a=q.pop() #pop()默认弹出列表中最后一个元素,弹出之后,原列表中该元素删除print(a)q.reverse() #还原else:print('no')breakelif s[0]==3:print(len(q))
q.put (),从队尾插入
q.get(),从队头删除,并返回
q.qsize(),队列大小
q.empty(),队列是否为空
append:入队,从队列右端(队尾)插入
appendleft:入队,从队列左端(队头)插入
pop:出队,从队尾删除一个元素并返回该元素
poplift:出队,从队头删除一个元素并返回该元素
len()队列大小
if q 判断空
q.append(),从队尾插入
del q [0],删除队头
len(q)队列大小
if not q 队列为空
reverse() 函数用于反向列表中元素