全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python 数据结构之队列的实现

Python 队列

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 queue

CMDs = {'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()

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Python  # 队列  # 数据结构中队列的实现  # 队列实现代码  # Python数据结构与算法中的队列详解(2)  # Python数据结构与算法中的队列详解(1)  # Python的数据结构与算法的队列详解(3)  # 详解python数据结构之队列Queue  # Python实现的数据结构与算法之队列详解  # Python数据结构之队列详解  # 弹出  # 是一种  # 第一个  # 将在  # 是从  # 可以通过  # 希望能  # 作为一个  # 来做  # 谢谢大家  # 转化为  # 最前面  # 不包含  # 很相似  # 后期  # 单引号  # 来代替  # String  # strip  # Enter 


相关文章: 深圳网站制作培训,深圳哪些招聘网站比较好?  高性价比服务器租赁——企业级配置与24小时运维服务  建站主机与服务器功能差异如何区分?  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何在新浪SAE免费搭建个人博客?  ,南京靠谱的征婚网站?  建站上传速度慢?如何优化加速网站加载效率?  建站之星免费模板:自助建站系统与智能响应式一键生成  C#如何使用XPathNavigator高效查询XML  如何在万网ECS上快速搭建专属网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  建站之星安装后如何配置SEO及设计样式?  如何配置支付宝与微信支付功能?  公司网站设计制作厂家,怎么创建自己的一个网站?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  如何选择网络建站服务器?高效建站必看指南  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  宝塔建站助手安装配置与建站模板使用全流程解析  如何在宝塔面板中修改默认建站目录?  如何通过商城免费建站系统源码自定义网站主题?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  建站之星如何助力企业快速打造五合一网站?  济南网站制作的价格,历城一职专官方网站?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  如何高效配置香港服务器实现快速建站?  如何正确选择百度移动适配建站域名?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  建站之星多图banner生成与模板自定义指南  如何在橙子建站中快速调整背景颜色?  文字头像制作网站推荐软件,醒图能自动配文字吗?  公众号网站制作网页,微信公众号怎么制作?  如何在VPS电脑上快速搭建网站?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何快速搭建高效可靠的建站解决方案?  如何选择CMS系统实现快速建站与SEO优化?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  公司网站的制作公司,企业网站制作基本流程有哪些?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  教程网站设计制作软件,怎么创建自己的一个网站?  如何零基础开发自助建站系统?完整教程解析  如何在服务器上三步完成建站并提升流量?  建站之星安装提示数据库无法连接如何解决?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  建站之星好吗?新手能否轻松上手建站?  英语简历制作免费网站推荐,如何将简历翻译成英文?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  建站之星安全性能如何?防护体系能否抵御黑客入侵? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。