栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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)

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1022548.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号