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 26进制计算实现方法
May 28 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 Python
在Mac上删除自己安装的Python方法
Oct 29 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
python实现矩阵打印
Mar 02 Python
Python实现TCP通信的示例代码
Sep 09 Python
Jupyter Notebook折叠输出的内容实例
Apr 22 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
OpenCV+Python3.5 简易手势识别的实现
Dec 21 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
python基础之错误和异常处理
Oct 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
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
JS实现图片放大镜插件详解
2017/11/06 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
python实现简单登陆流程的方法
2018/04/22 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
PyTorch预训练的实现
2019/09/18 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
Python3 元组tuple入门基础
2020/02/09 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
ktv好的活动方案
2014/08/17 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
保送生自荐信
2015/03/06 职场文书
小学英语教学随笔
2015/08/14 职场文书
大学军训口号大全
2015/12/24 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers