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里对list中的整数求平均并排序
Sep 12 Python
编写Python脚本使得web页面上的代码高亮显示
Apr 24 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
Python自定义线程类简单示例
Mar 23 Python
Python拼接字符串的7种方法总结
Nov 01 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
解决Jupyter因卸载重装导致的问题修复
Apr 10 Python
快速解释如何使用pandas的inplace参数的使用
Jul 23 Python
python 19个值得学习的编程技巧
Aug 15 Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 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
Python双链表原理与实现方法详解
Feb 22 #Python
You might like
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
Javascript类型转换的规则实例解析
2016/02/23 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
轮播图组件js代码
2016/08/08 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
python实现马耳可夫链算法实例分析
2015/05/20 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
python 获取网页编码方式实现代码
2017/03/11 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
python每天定时运行某程序代码
2019/08/16 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
企业后勤岗位职责
2014/02/28 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
Python Flask实现进度条
2022/05/11 Python