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 相关文章推荐
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
利用Python写一个爬妹子的爬虫
Jun 08 Python
Python实现识别图片内容的方法分析
Jul 11 Python
python中使用zip函数出现错误的原因
Sep 28 Python
python将一组数分成每3个一组的实例
Nov 14 Python
基于python使用tibco ems代码实例
Dec 20 Python
基于Django OneToOneField和ForeignKey的区别详解
Mar 30 Python
python logging通过json文件配置的步骤
Apr 27 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python3实现简单飞机大战
Nov 29 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 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常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
js写的评论分页(还不错)
2013/12/23 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
跟老齐学Python之复习if语句
2014/10/02 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
NET程序员上机面试题
2015/05/23 面试题
促销活动总结模板
2014/07/01 职场文书
业务内勤岗位职责
2015/04/13 职场文书
孝女彩金观后感
2015/06/10 职场文书
开学典礼校长致辞
2015/07/29 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书