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写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
20招让你的Python飞起来!
Sep 27 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
Python装饰器基础概念与用法详解
Dec 22 Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 Python
Python数据库小程序源代码
Sep 15 Python
Python3离线安装Requests模块问题
Oct 13 Python
python django中8000端口被占用的解决
Dec 17 Python
基于Python把网站域名解析成ip地址
May 25 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
tensorflow中的数据类型dtype用法说明
May 26 Python
python之基数排序的实现
Jul 26 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
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
php操作mysqli(示例代码)
2013/10/28 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
Seajs的学习笔记
2014/03/04 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
Javascript Objects详解
2014/09/04 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
js实现登录与注册界面
2017/11/01 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Windows下安装python2.7及科学计算套装
2015/03/05 Python
Python网络编程 Python套接字编程
2017/09/13 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
python生成带有表格的图片实例
2019/02/03 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
区分python中的进程与线程
2020/08/13 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
eBay德国站:eBay.de
2017/09/14 全球购物
大学生新闻专业个人自我评价
2013/11/12 职场文书
市场开发与营销专业求职信范文
2014/05/01 职场文书
行政主管岗位职责
2015/02/03 职场文书
创建文明城市倡议书
2015/04/28 职场文书
教研活动主持词
2015/07/03 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
Python合并多张图片成PDF
2021/06/09 Python