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中的XML库4Suite Server的介绍
Apr 14 Python
python使用PyGame播放Midi和Mp3文件的方法
Apr 24 Python
python插入数据到列表的方法
Apr 30 Python
讲解Python中if语句的嵌套用法
May 14 Python
利用python实现数据分析
Jan 11 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
对Python实现累加函数的方法详解
Jan 23 Python
使用python3 实现插入数据到mysql
Mar 02 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 Python
Python中相见恨晚的技巧
Apr 13 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 insert语法详解
2008/06/07 PHP
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
JavaScript 事件查询综合
2009/07/13 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
2018/11/20 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
微信小程序实现点击图片放大预览
2019/10/21 Javascript
python递归计算N!的方法
2015/05/05 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
Python urllib3软件包的使用说明
2020/11/18 Python
python中count函数知识点浅析
2020/12/17 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
考博专家推荐信
2014/05/10 职场文书
党员干部一句话承诺
2014/05/30 职场文书
感谢信的格式
2015/01/21 职场文书
总经理司机岗位职责
2015/04/10 职场文书