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函数学习笔记
Oct 07 Python
Python获取单个程序CPU使用情况趋势图
Mar 10 Python
在Python的Flask框架下收发电子邮件的教程
Apr 21 Python
Python检测字符串中是否包含某字符集合中的字符
May 21 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
pandas计算最大连续间隔的方法
Jul 04 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
Python批量安装卸载1000个apk的方法
Apr 10 Python
Python预测2020高考分数和录取情况
Jul 08 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
详解Python模块化编程与装饰器
Jan 16 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中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
PHP中串行化用法示例
2016/11/16 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python中的ConfigParser模块使用详解
2015/05/04 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
python实现随机梯度下降法
2020/03/24 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
Python之pymysql的使用小结
2019/07/01 Python
python解释器spython使用及原理解析
2019/08/24 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
苹果音乐订阅:Apple Music
2018/08/02 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
公司清洁工岗位职责
2013/12/14 职场文书
交通事故检查书范文
2014/01/30 职场文书
安全目标管理责任书
2014/07/25 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis
Golang入门之计时器
2022/05/04 Golang