7-1 队列的实现及基本操作(python版)

给定一个初始为空的队列和一系列入队、出队操作,请编写程序输出每次出队的元素。队列的元素值均为整数。

输入格式:

输入第1行为1个正整数n,表示操作个数;接下来n行,每行表示一个操作,格式为1 d或0。1 d表示将整数d入队,0表示出队。n不超过20000。

输出格式:

按顺序输出每次出队的元素,每个元素一行。若某出队操作不合法(如在队列空时出队),则对该操作输出invalid。

样例">样例">样例">输入样例:

7
1 1
1 2
0
0
0
1 3
0

输出样例:

1
2
invalid
3

解析: 最开始使用的是python的队列(Queue)进行操作,但是因为输入样例有两个的时候,也有一个的时候,所以即使是在进行队列的增加和删除时比较方便,但是解决同时输入两个或者一个的问题的时候却遇到了麻烦,所以后面改作了列表进行操作,使用的也是二维列表,队列的思想比较简洁明了,即先进先出,直接通过代码理解

其实使用python是比较麻烦的一种操作,通过c++的vector是比较简单的一种方法,但是本人最近因为一些原因在练习python,所以还是硬着头皮用python写的,其中的方法都不难理解

都是先通过判断来执行下一步的操作到底是要增加还是删除,但是该说不说c++真的香,一个合格的程序员应该使自己永远保持一种轻松的状态,多学一些知识融会贯通是很重要的

n = int(input())
i = 0
s = []
str = []
while i < n:
    a = input().split()
    s.append(a)
    i += 1
for j in range(0,n):
    if s[j][0] == '1':
        str.append(s[j][1])
    elif s[j][0] == '0':
        if len(str) == 0:
            print("invalid")
        else:
            pop = str.pop(0)
            print(pop)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值