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实现对一个完整url进行分割的方法
Apr 29 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
Python调用C++程序的方法详解
Jan 24 Python
解决Python的str强转int时遇到的问题
Apr 09 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
Oct 24 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
如何使用Python多线程测试并发漏洞
Dec 18 Python
pytorch 实现模型不同层设置不同的学习率方式
Jan 06 Python
python PIL模块的基本使用
Sep 29 Python
Vs Code中8个好用的python 扩展插件
Oct 12 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资源管理框架Assetic简介
2014/06/12 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
任意位置显示html菜单
2007/02/01 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
深入了解Python enumerate和zip
2020/07/16 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
日语专业毕业生求职信
2013/12/04 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
详解python网络进程
2021/06/15 Python
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL