python队列原理及实现方法示例


Posted in Python onNovember 27, 2019

本文实例讲述了python队列原理及实现方法。分享给大家供大家参考,具体如下:

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。

队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,总是在队列最后。这也比较符合我们通常生活中的习惯,排在第一个的优先出列,最后来的当然排在队伍最后。

队列的实现

同栈一样,队列也可以用顺序表或者链表实现。

操作

  • Queue() 创建一个空的队列
  • enqueue(item) 往队列中添加一个item元素
  • dequeue() 从队列头部删除一个元素
  • is_empty() 判断一个队列是否为空
  • size() 返回队列的大小

示例

class Queue(object):
  """队列"""
  def __init__(self):
    self.items = []
  def is_empty(self):
    return self.items == []
  def enqueue(self, item):
    """进队列"""
    self.items.insert(0,item)
  def dequeue(self):
    """出队列"""
    return self.items.pop()
  def size(self):
    """返回大小"""
    return len(self.items)
if __name__ == "__main__":
  q = Queue()
  q.enqueue("hello")
  q.enqueue("world")
  q.enqueue("itcast")
  print q.size()
  print q.dequeue()
  print q.dequeue()
  print q.dequeue()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
调试Python程序代码的几种方法总结
Apr 28 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
Python中list列表的一些进阶使用方法介绍
Aug 15 Python
深入浅析python定时杀进程
Jun 06 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
python实现图片识别汽车功能
Nov 30 Python
解决python明明pip安装成功却找不到包的问题
Aug 28 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
Python实现疫情地图可视化
Feb 05 Python
Python中Permission denied的解决方案
Apr 02 Python
Python使用UDP实现720p视频传输的操作
Apr 24 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 #Python
python双端队列原理、实现与使用方法分析
Nov 27 #Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 #Python
OpenCV+Python--RGB转HSI的实现
Nov 27 #Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 #Python
python的range和linspace使用详解
Nov 27 #Python
python定间隔取点(np.linspace)的实现
Nov 27 #Python
You might like
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
PHP中include()与require()的区别说明
2010/03/10 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
用原生js做单页应用
2017/01/17 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
python自动发邮件库yagmail的示例代码
2018/02/23 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python浪漫表白源码
2019/04/05 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
How TDD works
2012/09/30 面试题
复核员上岗演讲稿
2014/01/05 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
个人年终总结范文
2015/03/09 职场文书
《包身工》教学反思
2016/02/23 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书