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 获取 Linux 系统信息的代码
Jul 13 Python
python生成密码字典的方法
Jul 06 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
python next()和iter()函数原理解析
Feb 07 Python
Python发送手机动态验证码代码实例
Feb 28 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 Python
Pytorch 使用CNN图像分类的实现
Jun 16 Python
Tensorflow之MNIST CNN实现并保存、加载模型
Jun 17 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
Jul 13 Python
Python3如何在服务器打印资产信息
Aug 27 Python
基于Python和openCV实现图像的全景拼接详细步骤
Oct 05 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 mssql 数据库分页SQL语句
2008/12/16 PHP
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
PHP实现计算器小功能
2020/08/28 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
Vue的生命周期操作示例
2019/09/17 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
Python实现平行坐标图的两种方法小结
2019/07/04 Python
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
COS美国官网:知名服装品牌
2019/04/08 全球购物
教师自我鉴定
2013/12/13 职场文书
小学英语教学反思
2014/01/30 职场文书
运动会跳远广播稿
2014/02/04 职场文书
《手指教学》反思
2014/02/14 职场文书
英语教研活动总结
2014/07/02 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL