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中用于检查英文字母大写的isupper()方法
May 19 Python
Django实现自定义404,500页面教程
Mar 26 Python
python中的计时器timeit的使用方法
Oct 20 Python
python MNIST手写识别数据调用API的方法
Aug 08 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
Python小白必备的8个最常用的内置函数(推荐)
Apr 03 Python
详解Python用户登录接口的方法
Apr 17 Python
Python跳出多重循环的方法示例
Jul 03 Python
解决Django中多条件查询的问题
Jul 18 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 Python
python中opencv实现图片文本倾斜校正
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
php中随机显示图片的函数代码
2011/06/23 PHP
PHP常见过waf webshell以及最简单的检测方法
2019/05/21 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
实现vuex原理的示例
2020/10/21 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
Python实现远程调用MetaSploit的方法
2014/08/22 Python
python中pygame模块用法实例
2014/10/09 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
Python3 replace()函数使用方法
2018/03/19 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
python实现控制台输出彩色字体
2020/04/05 Python
Python无损压缩图片的示例代码
2020/08/06 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
高校毕业生登记表自我鉴定
2013/11/03 职场文书
简历的自荐信
2013/12/19 职场文书
机械设计职业生涯规划书
2013/12/27 职场文书
家长写给孩子的评语
2014/04/18 职场文书
场地使用证明模板
2014/10/25 职场文书
手机销售员岗位职责
2015/04/11 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
青年教师听课心得体会
2016/01/15 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python