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实现的去除win下文本文件头部BOM的代码
Feb 10 Python
python实现颜色rgb和hex相互转换的函数
Mar 19 Python
用Python生成器实现微线程编程的教程
Apr 13 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
python笔记:mysql、redis操作方法
Jun 28 Python
python实现括号匹配的思路详解
Aug 23 Python
Python二叉搜索树与双向链表转换算法示例
Mar 02 Python
Python数据可视化:泊松分布详解
Dec 07 Python
python基于event实现线程间通信控制
Jan 13 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 Python
python库Tsmoothie模块数据平滑化异常点抓取
Jun 10 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中的闭包和匿名函数
2017/12/25 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
JavaScript 自定义事件之我见
2017/09/25 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
Python关于反射的实例代码分享
2020/02/20 Python
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
MIS软件工程师的面试题
2016/04/22 面试题
网络维护中文求职信
2014/01/03 职场文书
借名购房协议书范本
2014/10/06 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
新生入学欢迎词
2015/01/26 职场文书
护士个人年度总结范文
2015/02/13 职场文书
2015年学校政教工作总结
2015/07/20 职场文书
导游词之台湾阿里山
2019/10/23 职场文书