python 队列基本定义与使用方法【初始化、赋值、判断等】
作者:鲸落丶 发布时间:2023-08-13 06:34:46
标签:python,队列
本文实例讲述了python 队列基本定义与使用方法。分享给大家供大家参考,具体如下:
队列的特征是:先进先出
应用场景:消息通信、多进程间的协同、多线程间的协同等
在队列中需要设计的实例属性:head节点、tail节点
需要设计的实例方法有两个:分别是入队队列enqueue和出队队列dequeue
# -*- coding:utf-8 -*-
#! python3
class Node(object): #节点,包括两个属性,一个是节点的值,一个是节点的下一个指向
def __init__(self,value):
self.value = value #节点的值
self.next = None #节点的下一个指向
class Queue(object): #队列这个类
def __init__(self): #初始化这个队列
self.first = None #队列的首尾指向的节点都是None,初始化
self.last = None
def enter(self,n):
packNode = Node(n) #创建Node新节点实例,值为n
if self.first == None: #如果首指向为空
self.first = packNode #将首指向的节点赋为传进来的节点
self.last = self.first #并且将尾指向的节点赋为
else:
self.last.next = packNode #如果队列不为空,就将新的节点赋值到目前last的下一个位置
self.last = packNode #然后移动last指向,将last指向到刚才新增的节点
def quit(self):
if self.first == None:
return None
else:
tmp = self.first.value #如果队列中存在值,则把队列中第一个的值赋值给tmp
self.first = self.first.next #将first的指向下一个,变为first指向
return tmp
if __name__ == '__main__':
print("------------队列开始--------")
q = Queue()
# n1 = Node(1)
# n2 = Node(2)
# n3 = Node(3)
q.enter(1)
q.enter(2)
q.enter(3)
print(q.quit())
print(q.quit())
print(q.quit())
# print(q)
运行结果:
------------队列开始--------
1
2
3
希望本文所述对大家Python程序设计有所帮助。
来源:https://www.cnblogs.com/kunpengv5/p/ee920e521cd8e5a3da481df55779de6c.html


猜你喜欢
- 通信方式进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块主要通过队列方式队列:队列类似于一条管道,元素先
- 什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般
- 使用Keras如果要使用大规模数据集对网络进行训练,就没办法先加载进内存再从内存直接传到显存了,除了使用Sequence类以外,还可以使用迭
- 300来行python代码实现简易版学生成绩管理系统,供大家参考,具体内容如下使用链表来实现class Node(object): def
- 1 捕捉一个异常捕捉一个异常 以用0作为除数会得到ZeroDivisionError异常为例,print(1/0)为例程序的持续执行,不因该
- thinkphp查询mssql数据库出现乱码的原因是ThinkPHP默认为UTF-8,而msmsql数据库是简体中文版,存储的是GB2312
- 最近做了一个项目,其中有项目需求涉及到手机号验证码,就是当用户点击获取验证码之后我们会发送一条信息到用户手机,然后就会出现一个倒计时按钮,很
- 最近在作图时需要将输出的图片紧密排布,还要去掉坐标轴,同时设置输出图片大小。要让程序自动将图表保存到文件中,代码为:plt.savefig(
- 阅读上一篇文章《WEB2.0网页制作标准教程(5)head区的其他设置》在开始正式内容制作之前,我们必须先了解一下web标准有关代码的规范。
- 一. 如何调用def f1(arg1, arg2): print('f1', arg1, arg2)def f2
- 在刚接触C#的时候由于公司使用的就是Oracle数据库,那么C#怎么连接Oracle数据库就成了首要去掌握的知识点了。在那时没有ODP.NE
- 内置模块(一)Python内置的模块有很多,我们也已经接触了不少相关模块,接下来咱们就来做一些汇总和介绍。内置模块有很多 & 模块中
- 本文实例为大家分享了python绘制高斯曲线的具体代码,供大家参考,具体内容如下源码:import numpy as npimport ma
- # _*_ coding: utf-8 _*_#---------------------------------------#
- 此功能已进入试用一周了,都没有问题,奇怪的是今天出现了问题?? AjaxRequestObj.createEqStatusParameter
- 损失函数通过torch.nn包实现,1 基本用法criterion = LossCriterion() #构造函数有自己的参数loss =
- 实测mysqld –skip-grant-tables这样的命令行,在mysql8中无法成功启动,而且测试了该参数放在ini文件里面也同样无
- 本文实例为大家分享了JavaScript实现涂鸦笔的具体代码,供大家参考,具体内容如下1、html部分、css部分1.1 实现一个画框<
- 一、单个文件打包1.1 简单打包例如现在有一个main.py文件内容如下import osprint("hello world&q
- SQL语句参考及记录集对象详解1. ASP与Access数据库连接:2. ASP与SQL数据库连接:建立记录集对象:set rs=serve