博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 数据结构_队列
阅读量:7118 次
发布时间:2019-06-28

本文共 1610 字,大约阅读时间需要 5 分钟。

目录

队列

Queue 队列是一种先进先出(FIFO)的数据类型, 新的元素通过 入队 的方式添加进 Queue 的末尾, 出队 就是从 Queue 的头部删除元素.

用列表来做 Queue:

queue = []                 # 初始化一个列表数据类型对象, 作为一个队列def enQ():              # 定义一个入栈方法    queue.append(raw_input('Enter New String: ').strip())          # 提示输入一个入队的 String 对象, 调用 Str.strip() 保证输入的 String 值不包含多余的空格def deQ():               # 定义一个出队方法    if len(queue) == 0:        print "Cannot pop from an empty queue!"    else:        print 'Remove [', `queue.pop(0)`, ']'        # 使用反单引号(` `)来代替 repr(), 把 String 的值用引号扩起来, 而不仅显示 String 的值        # queue.pop(0) 总是将在队列中最前面的元素弹出def viewQ():           # 定义一个显示队列中的内容的方法        print queueCMDs = {
'u':enQ, 'o':deQ, 'v':viewQ}# 定义一个 Dict 类型对象, 将字符映射到相应的 function .可以通过输入字符来执行相应的操作def showmenu(): # 定义一个操作菜单提示方法 pr = """ (E)nqueue (D)equeue (V)iew (Q)uit Enter choice: """ while True: while True: try: choice = raw_input(pr).strip()[0].lower() # Str.strip() 去除 String 对象前后的多余空格 # Str.lower() 将多有输入转化为小写, 便于后期的统一判断 # 输入 ^D(EOF, 产生一个 EOFError 异常) # 输入 ^C(中断退出, 产生一个 keyboardInterrupt 异常) except (EOFError, KeyboardInterrupt, IndexError): choice = 'q' print '\nYou picked: [%s]' % choice if choice not in 'uovq': print 'Invalid option, try again' else: break if choice == 'q': break CMDs[choice]() # 获取 Dict 中字符对应的 functionName, 实现函数调用if __name__ == '__main__': showmenu()

队列和堆栈的实现方式很相似, 区别在于队列总是先弹出第一个元素而堆栈总是先弹出最后一个元素.

转载地址:http://gmbel.baihongyu.com/

你可能感兴趣的文章
shell问题-报错即退出
查看>>
Bug解决过程复盘
查看>>
JavaScript和HTML DOM的区别与联系
查看>>
行为型设计模式之模板方法(Template Method)
查看>>
C#收发邮件(Jmail+Professional+v4.4+特别版)
查看>>
T-SQL事务编写
查看>>
CGZip, a C++ wrapper for gzip methods
查看>>
将NavigationBar设置透明
查看>>
Go Revel - Results(响应)
查看>>
c# WinForm 边框阴影窗体
查看>>
主线程不能直接调用webservice方法
查看>>
Redis集群方案之使用豌豆荚Codis搭建(待实践)
查看>>
Universal USB Installer – Easy as 1 2 3
查看>>
假期小结 BIO, NIO, AIO
查看>>
Jvm(57),类加载器----初次认识加载器
查看>>
poj1053
查看>>
【关键帧提取】基于运动信息(续3)
查看>>
pygame学习笔记(1)——安装及矩形、圆型画图
查看>>
jQuery UI Portlet 1.1.2 发布
查看>>
Intellij Idea @Autowired取消提示
查看>>