网络编程
位置:首页>> 网络编程>> Python编程>> Python实现队列的方法示例小结【数组,链表】

Python实现队列的方法示例小结【数组,链表】

作者:授我以驴  发布时间:2023-09-27 13:52:11 

标签:Python,队列,数组,链表

本文实例讲述了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程序设计有所帮助。

来源:https://blog.csdn.net/one_Salted_FishGG/article/details/99879624

0
投稿

猜你喜欢

  • 本文实例讲述了Python简单生成随机姓名的方法。分享给大家供大家参考,具体如下:用到random.choice(序列)在一个序列中随机选取
  • 我们知道,Diango 接收的 HTTP 请求信息里带有 Cookie 信息。Cookie的作用是为了识别当前用户的身份,通过以下例子来说明
  • 很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),
  • 本文实例为大家分享了python实现图书管理系统的具体代码,供大家参考,具体内容如下import mysql.connectorimport
  • Python是静态作用域语言,但是它自身是一个动态语言。在Python中变量的作用域是由变量在代码中的位置决定的,与C语言有些相似,但不是完
  • 本文实例讲述了Python面向对象程序设计类变量与成员变量、类方法与成员方法用法。分享给大家供大家参考,具体如下:类变量与成员变量在类中声明
  • 问题描述vscode中跨目录的模块调用远不如pycharm中的来的简单,在pycharm中即使是不同库文件夹中子函数也可以进行互相调用。而在
  • ValueError: The number of FixedLocator locations (9), usually from a c
  • 在Python中,数据存储方式分为同步存储和异步存储。同步写入速度比较慢,而爬虫速度比较快,有可能导致数据保存不完整,一部分数据没有入库。而
  • 刷抖音的时候发现一个老师在用的课堂点名系统。用PyQt5实现了一下同款,导入学生姓名,测试了一下完美运行。操作效果展示:完整源代码块还是放在
  • 可以使用虚拟屏幕的方式,在虚拟屏幕上运行浏览器并进行截图操作,这样就不会影响当前屏幕的展示。具体实现可以使用Xvfb和pyvirtualdi
  • 本文实例讲述了JS实现的倒计时效果。分享给大家供大家参考,具体如下:我们经常会看到某些网站在注册的时候喜欢搞个按钮倒计时的效果,就是多少秒之
  • 我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们可以通过export with rows=no来得到,但它的输出因为格式
  • 起因前端日子写完的Python入库脚本,通过直接读取配置文件的内容(包含了数据库的ip,数据库的用户名,数据库的密码),因为配置文件中的数据
  • 今天分享 3 个 Python 编程小技巧,来看看你是否用过?1、如何按照字典的值的大小进行排序我们知道,字典的本质是哈希表,本身是无法排序
  • 前几天安装了dedecms系统,当在后台安全退出的时候,后台出现空白,先前只分析其他功能去了,也没太注意安全,看了一下安全退出的代码,是这样
  • CSS2.1 中规定了关于 CSS 规则 Specificity(特异性)的计算方式,用一个四位的数字串(注:CSS2 中是用三位)来表示,
  • 1000块钱做个百度?能提出这种要求的客户实乃乙方克星、民族之光、科创永动机、西虹市一大杰出青年,诺奖永远得不到的人才。但作为一个硬核的程序
  • 玩过电脑游戏的同学对于 * 肯定不陌生,但是你在用 * 的时候有没有想过如何做一个 * 呢?(当然用 * 不是那么道义哈,呵呵),那我们就来看一下如
  • 首次安装、运行MySQL时,你可能会遇到一些错误,使MySQL服务器不能启动。本节的目的是帮助你诊断并纠正这些错误。解决服务器问题时你的第一
手机版 网络编程 asp之家 www.aspxhome.com