python 队列基本定义与使用方法【初始化、赋值、判断等】


Posted in Python onOctober 24, 2019

本文实例讲述了python 队列基本定义与使用方法。分享给大家供大家参考,具体如下:

队列的特征是:先进先出

应用场景:消息通信、多进程间的协同、多线程间的协同等

在队列中需要设计的实例属性:head节点、tail节点

需要设计的实例方法有两个:分别是入队队列enqueue和出队队列dequeue

python 队列基本定义与使用方法【初始化、赋值、判断等】

# -*- 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程序设计有所帮助。

Python 相关文章推荐
Python中的字符串操作和编码Unicode详解
Jan 18 Python
Python 专题四 文件基础知识
Mar 20 Python
浅谈numpy库的常用基本操作方法
Jan 09 Python
django静态文件加载的方法
May 20 Python
python3实现多线程聊天室
Dec 12 Python
三步实现Django Paginator分页的方法
Jun 11 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
Python模块 _winreg操作注册表
Feb 05 Python
使用TensorBoard进行超参数优化的实现
Jul 06 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 Python
baselines示例程序train_cartpole.py的ImportError
May 20 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 #Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 #Python
python实现获取单向链表倒数第k个结点的值示例
Oct 24 #Python
python模块导入的方法
Oct 24 #Python
python读取word 中指定位置的表格及表格数据
Oct 23 #Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 #Python
pandas按行按列遍历Dataframe的几种方式
Oct 23 #Python
You might like
写出高质量的PHP程序
2012/02/04 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
javascript 二进制运算技巧解析
2012/11/27 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
浅谈python中的占位符
2017/11/09 Python
简单了解Django模板的使用
2017/12/20 Python
python读取中文txt文本的方法
2018/04/12 Python
django静态文件加载的方法
2018/05/20 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
python实现文字版扫雷
2020/04/24 Python
解决python运行启动报错问题
2020/06/01 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
党员政治学习材料
2014/05/14 职场文书
英文慰问信范文
2015/03/24 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
2019年思想汇报
2019/06/20 职场文书
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android
OpenCV实现反阈值二值化
2021/11/17 Java/Android
SQL语句多表联合查询的方法示例
2022/04/18 MySQL