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实现冒泡,插入,选择排序简单实例
Aug 18 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
Nov 05 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
python字符串过滤性能比较5种方法
Jun 22 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
一份python入门应该看的学习资料
Apr 11 Python
python Pandas库基础分析之时间序列的处理详解
Jul 13 Python
django 捕获异常和日志系统过程详解
Jul 18 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
python 一维二维插值实例
Apr 22 Python
opencv 图像轮廓的实现示例
Jul 08 Python
Python监听键盘和鼠标事件的示例代码
Nov 18 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迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
python中的随机函数random的用法示例
2018/01/27 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
自考生毕业自我鉴定
2013/10/10 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
小学生寒假家长评语
2014/04/16 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
百年孤独读书笔记
2015/06/29 职场文书