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删除服务器文件代码示例
Feb 09 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
Python3实现定时任务的四种方式
Jun 03 Python
python同步两个文件夹下的内容
Aug 29 Python
利用python实现冒泡排序算法实例代码
Dec 01 Python
Python使用re模块验证危险字符
May 21 Python
Python检测端口IP字符串是否合法
Jun 05 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
Python操作Word批量生成合同的实现示例
Aug 28 Python
python tkinter实现下载进度条及抖音视频去水印原理
Feb 07 Python
python实现简单区块链结构
Apr 25 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 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时区转换转换函数
2014/01/07 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
Python中turtle库的使用实例
2019/09/09 Python
python多进程重复加载的解决方式
2019/12/13 Python
用python实现学生管理系统
2020/07/24 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
node中使用shell脚本的方法步骤
2021/03/23 Javascript
表彰大会主持词
2014/03/26 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
承诺书格式范文
2014/06/03 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
2016年学校招生广告语
2016/01/28 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书