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抓取网页中图片并保存到本地
Dec 01 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
May 23 Python
Python 16进制与中文相互转换的实现方法
Jul 09 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
python 搜索大文件的实例代码
Jul 08 Python
python join方法使用详解
Jul 30 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
Nov 01 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 Python
python实现的web监控系统
Apr 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
基于文本的留言簿
2006/10/09 PHP
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
详解JavaScript中的链式调用
2020/11/27 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
python 中的int()函数怎么用
2017/10/17 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python Flask框架扩展操作示例
2019/05/03 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
使用python实现简单五子棋游戏
2019/06/18 Python
python3使用GUI统计代码量
2019/09/18 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
法学院方阵解说词
2014/01/29 职场文书
优秀员工评语
2014/02/10 职场文书
西岭雪山导游词
2015/02/06 职场文书