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 相关文章推荐
Python3 能振兴 Python的原因分析
Nov 28 Python
Python描述器descriptor详解
Feb 03 Python
使用Python编写Linux系统守护进程实例
Feb 03 Python
Python中工作日类库Busines Holiday的介绍与使用
Jul 06 Python
python爬虫面试宝典(常见问题)
Mar 02 Python
Pycharm更换python解释器的方法
Oct 29 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
python+requests接口自动化框架的实现
Aug 31 Python
详解基于python的图像Gabor变换及特征提取
Oct 26 Python
python之随机数函数的实现示例
Dec 30 Python
正确的理解和使用Django信号(Signals)
Apr 14 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
web方式ftp
2006/10/09 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
Maps Javascript
2007/01/22 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
简单实现js轮播图效果
2017/07/14 Javascript
vue组件的写法汇总
2018/04/12 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
JS实现密码框效果
2020/09/10 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
九步学会Python装饰器
2015/05/09 Python
Python利用ansible分发处理任务
2015/08/04 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
python实现的发邮件功能示例
2019/09/11 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
python不同系统中打开方法
2020/06/23 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
商得四方公司面试题(gid+)
2014/04/30 面试题
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
情人节寄语大全
2014/04/11 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
春晚观后感
2015/06/11 职场文书