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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
Python实现Linux命令xxd -i功能
Mar 06 Python
python 实现登录网页的操作方法
May 11 Python
Python 监测文件是否更新的方法
Jun 10 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
python对一个数向上取整的实例方法
Jun 18 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
django跳转页面传参的实现
Sep 17 Python
如何在windows下安装配置python工具Ulipad
Oct 27 Python
Python排序算法之插入排序及其优化方案详解
Jun 11 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
对python模块中多个类的用法详解
2019/01/10 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
团委竞选演讲稿
2014/04/24 职场文书
大学生英语演讲稿
2014/04/24 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
离婚被告代理词
2015/05/23 职场文书
《搭石》教学反思
2016/02/18 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技