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爬虫之模拟知乎登录的方法教程
May 25 Python
解决PyCharm中光标变粗的问题
Aug 05 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
python多线程共享变量的使用和效率方法
Jul 16 Python
pycharm配置当鼠标悬停时快速提示方法参数
Jul 31 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
Python自动采集微信联系人的实现示例
Feb 28 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
Mar 30 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
python如何随机生成高强度密码
Aug 19 Python
超详细Python解释器新手安装教程
May 10 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版
2016/07/21 PHP
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
python SVM 线性分类模型的实现
2019/07/19 Python
python实现ip地址的包含关系判断
2020/02/07 Python
python实现低通滤波器代码
2020/02/26 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
人事行政主管岗位职责
2013/12/22 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
铅球加油稿100字
2014/09/26 职场文书
员工工作自我评价
2014/09/26 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
2016年会领导致辞稿
2015/07/29 职场文书