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读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
python获取mp3文件信息的方法
Jun 15 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
对python中的iter()函数与next()函数详解
Oct 18 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 Python
python贪吃蛇游戏代码
Apr 18 Python
python logging设置level失败的解决方法
Feb 19 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
python字典的元素访问实例详解
Jul 21 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
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
js tab 选项卡
2009/04/26 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
js实现微信分享代码
2020/10/11 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
vue 计时器组件的实现代码
2017/09/14 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
Python定时器实例代码
2017/11/01 Python
Python反射用法实例简析
2017/12/22 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
深入了解Python 方法之类方法 & 静态方法
2020/08/17 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
优秀学生获奖感言
2014/02/15 职场文书
学生会主席演讲稿
2014/04/25 职场文书
公司建议书怎么写
2014/05/15 职场文书
励志演讲稿500字
2014/08/21 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
2016特色励志班级口号
2015/12/24 职场文书