目录

  • 目录
  • 队列

队列

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)uitEnter 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]' % choiceif choice not in 'uovq':print 'Invalid option, try again'else:breakif choice == 'q':breakCMDs[choice]()# 获取 Dict 中字符对应的 functionName, 实现函数调用if __name__ == '__main__':showmenu()

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

Python 数据结构_队列相关推荐

  1. Python 数据结构之队列的实现

    队列 是一个抽象的数据结构,与堆栈有些相似.较对比于栈,队列打开两端. 一端总是用来插入数据(排队),另一个是用来删除数据(离队). 队列使用先入先出的方法,即,第一存储的数据项先被访问. 队列有两端 ...

  2. Python 数据结构_堆栈

    目录 目录 堆栈 堆栈 堆栈是一个后进先出(LIFO)的数据结构. 堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流 . 在堆栈中, push 和 pop 是常用术语: push: 意思是 ...

  3. python数据结构_(列表)大O性能_学习笔记(2)

    1.列表 1)一般列表操作命令的复杂度(准确来说是函数的复杂度) 2)时间计算(timeit模块和Timer对象) 要捕获我们的每个函数执行所需的时间,我们将使用 Python 的 timeit 模块 ...

  4. python数据结构_大O符号_学习笔记(1)

    1.概念 :大O符号是用来表达一个算法的复杂程度的,是一个数量级 2.代码 a = 1 b = 2 c = 3 for i in range(n):for j in range(n):x = i*iy ...

  5. python数据结构之队列(一)

    队列概念 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出的(First In First Out)的线性表,简称FIFO.允许插入的一端为队尾,允许 ...

  6. Python数据结构实战——队列(Queue)

    文章目录 1.队列的性质(先进先出) 2.使用deque作为队列 3.使用双端队列实现Queue类 1.队列的性质(先进先出) wmt_stock_price_queue = [] wmt_stock ...

  7. 数据结构_队列:从普通队列到循环(circular)队列

    队列:从普通队列到循环队列 队列的定义: 队列(queue)是允许在一端进行插入操作,在另一端进行删除操作的线性表.允许插入的一端称为队尾(rear),允许删除的一端称为队头(front).插入操作称 ...

  8. 数据结构_队列_mindmap

  9. python数据结构_(字典)大O性能_学习笔记(3)

最新文章

  1. 《深入理解Nginx:模块开发与架构解析》一1.2 为什么选择Nginx
  2. linux curl 命令模拟 http get post 请求
  3. protobuf-2.6.1生成java文件
  4. 写一下这两天的生活吧!开学了,也没有多少时间了
  5. 蓝牙解析(part10):BLE ATT/GATT
  6. 1022 D进制的A+B (20 分)(c语言)
  7. Angular 项目里 angular.json 文件内容的学习笔记
  8. java if hasvalue_首选:可为空 .HasValue或Nullable !=空吗?
  9. python怎么输出数组全部数据_打印numpy数组的全部内容
  10. oc-10-对象做参数
  11. 三维点云学习(4)3-Model Fitting Least Square
  12. 数学与编程——概率论与数理统计
  13. 时点数列序时平均数_时点数列序时平均数计算方法研究
  14. 哪些话你一开始不信,后来却深信不疑
  15. 东北大学linux程序设计考试,Linux认证考试试题及答案
  16. 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客
  17. clearcase 常用命令
  18. latex下的实数集R的写法
  19. 【感恩】为做运维的重病老同事李静波寻求帮助
  20. c语言 爱心 (koi奋斗中~~)

热门文章

  1. mysql outfile 路径_MySQL load_file()/into outfile路径问题总结
  2. java a标签正则_正则表达式:java中婚配HTML中a标签中的中文字符
  3. yum 代理_教你如何在5分钟轻松部署nginx反向代理
  4. java format 字符_JAVA字符串格式化-String.format()的使用
  5. 哈佛博士教你如何摆脱「尬聊」
  6. 搞事情?!2020云·创季来啦,量子位带你领略云产业的耳目一新!
  7. 百度宣布AI语音调用登顶中国第一,自研芯片+最新端到端模型颠覆传统语音识别算法...
  8. 推特千赞Demo袭来!简笔画变照片的GauGAN,编故事的GPT-2,浏览器皆可玩
  9. Git分支合并:Merge、Rebase的选择
  10. ie中placeholder字体颜色兼容问题