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 02 Python
python实现逆波兰计算表达式实例详解
May 06 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 Python
Django框架 querySet功能解析
Sep 04 Python
python 实现生成均匀分布的点
Dec 05 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
Jan 14 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
Mar 26 Python
python 实现两个线程交替执行
May 02 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
Aug 31 Python
Python实现小黑屋游戏的完整实例
Jan 06 Python
python实现简单文件读写函数
Feb 25 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制作静态网站的模板框架(一)
2006/10/09 PHP
PHP+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
php学习 字符串课件
2008/06/15 PHP
PHP 危险函数解释 分析
2009/04/22 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
Python下singleton模式的实现方法
2014/07/16 Python
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
Python lxml模块安装教程
2015/06/02 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
Django中FilePathField字段的用法
2020/05/21 Python
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
大学活动策划书范文
2014/01/10 职场文书
高一地理教学反思
2014/01/18 职场文书
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
收银员岗位职责范本
2015/04/07 职场文书
离婚起诉书范本
2015/05/18 职场文书
学术会议开幕词
2016/03/03 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
浅析Python实现DFA算法
2021/06/26 Python
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记