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中的Matplotlib模块入门教程
Apr 15 Python
python 动态加载的实现方法
Dec 22 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
django 解决manage.py migrate无效的问题
May 27 Python
Python实现的多叉树寻找最短路径算法示例
Jul 30 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
python中列表的切片与修改知识点总结
Jul 23 Python
python输入错误后删除的方法
Oct 12 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
有关Tensorflow梯度下降常用的优化方法分享
Feb 04 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
收集的DedeCMS一些使用经验
2007/03/17 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
浅谈JS日期(Date)处理函数
2014/12/07 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
浅析python递归函数和河内塔问题
2017/04/18 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
Python实现Kmeans聚类算法
2020/06/10 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
python多进程读图提取特征存npy
2019/05/21 Python
django页面跳转问题及注意事项
2019/07/18 Python
python实现密码强度校验
2020/03/18 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
Linux文件操作命令都有哪些
2015/02/27 面试题
经典的班主任推荐信
2013/10/28 职场文书
应届毕业生求职自荐书
2014/01/03 职场文书
装修五一活动策划案
2014/01/23 职场文书
趣味活动策划方案
2014/02/08 职场文书
运动会加油稿30字
2015/07/21 职场文书
Python四款GUI图形界面库介绍
2022/06/05 Python