Python实现队列的方法示例小结【数组,链表】


Posted in Python onFebruary 22, 2020

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

Python实现队列

队列(FIFO),添加元素在队列尾,删除元素在队列头操作

  • 列表实现队列:利用python列表方法

代码如下:

# 列表实现队列
class listQueue(object):
  def __init__(self):
    self.items = []

  def is_empty(self):
    return self.items == None

  def size(self):
    return len(self.items)

  # 入队
  def enqueue(self, value):
    return self.items.append(value)

  # 出队
  def dequeue(self):
    if self.is_empty():
      raise Exception("queue is empty !")
    return self.items.pop(0)
  • 链表实现队列:

队列的链表实现中,队列的入队(enqueue)操作类似于链表在表尾添加元素;队列的出队(dequeue)操作类似于在链表头部删除元素

队列初始化中,定义两个特殊节点,队列头(head)和队列尾(tail),方便进行操作

代码如下:

# 链表实现队列
class linkedQueue(object):
  class Node(object):
    def __init__(self, value=None):
      self.value = value
      self.next = None

  def __init__(self):
    self.head = None
    self.tail = None
    #self.head.next = self.tail
    self.length = 0

  def is_empty(self):
    return self.length == 0

  def size(self):
    return self.length

  def enqueue(self, value):
    node = self.Node(value)
    if self.is_empty():
      self.head = node
    else:
      self.tail.next = node
    self.tail = node
    self.length += 1

  def dequeue(self):
    if self.is_empty():
      raise Exception("queue is empty !")
    item = self.head.value
    self.head = self.head.next
    self.length -= 1
    print("出队列元素为:",item)
    return item

link = linkedQueue()
link.enqueue(1)
link.enqueue(2)
link.enqueue(3)
link.enqueue(4)
print("队列长度为:",link.size())
link.dequeue()
link.dequeue()

运行结果:

队列长度为: 4
出队列元素为: 1
出队列元素为: 2

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

Python 相关文章推荐
python简单分割文件的方法
Jul 30 Python
python机器学习之决策树分类详解
Dec 20 Python
pyQt4实现俄罗斯方块游戏
Jun 26 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
Python原始套接字编程实例解析
Jan 29 Python
vue常用指令代码实例总结
Mar 16 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 Python
Python爬虫使用bs4方法实现数据解析
Aug 25 Python
PyTorch 导数应用的使用教程
Aug 31 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
Sep 11 Python
python 读取、写入txt文件的示例
Sep 27 Python
python实现从尾到头打印单链表操作示例
Feb 22 #Python
python实现滑雪游戏
Feb 22 #Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 #Python
Python栈的实现方法示例【列表、单链表】
Feb 22 #Python
python实现滑雪者小游戏
Feb 22 #Python
python实现拼图小游戏
Feb 22 #Python
Python双链表原理与实现方法详解
Feb 22 #Python
You might like
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
js有序数组的连接问题
2013/10/01 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
用python实现的线程池实例代码
2018/01/06 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
Flask框架钩子函数功能与用法分析
2019/08/02 Python
python中下标和切片的使用方法解析
2019/08/27 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
建房协议书
2014/04/11 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
法人代表证明书格式
2014/10/01 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
收入证明怎么写
2015/06/12 职场文书
投诉书格式范本
2015/07/02 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
初中思品教学反思
2016/02/20 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书