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之集合的关系
Sep 24 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
python通过openpyxl生成Excel文件的方法
May 12 Python
老生常谈Python基础之字符编码
Jun 14 Python
浅谈使用Python内置函数getattr实现分发模式
Jan 22 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
May 04 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
Python初学者常见错误详解
Jul 02 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
Python文件读写w+和r+区别解析
Mar 26 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 Python
python-jwt用户认证食用教学的实现方法
Jan 19 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 excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
html读出文本文件内容
2007/01/22 Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
jquery图片切换插件
2015/03/16 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
python定时器使用示例分享
2014/02/16 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
python如何获取apk的packagename和activity
2020/01/10 Python
Django与pyecharts结合的实例代码
2020/05/13 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
婚内房产协议书范本
2014/10/02 职场文书
刑事法律意见书
2015/06/04 职场文书
超强台风观后感
2015/06/09 职场文书
贷款收入证明格式
2015/06/24 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
新学期家长寄语2016
2015/12/03 职场文书