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 相关文章推荐
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
python字典序问题实例
Sep 26 Python
Python实现遍历目录的方法【测试可用】
Mar 22 Python
pycharm安装图文教程
May 02 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 Python
Django实现全文检索的方法(支持中文)
May 14 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
关于文本留言本的分页代码
2006/10/09 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
详解PHP中的Traits
2015/07/29 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
谈谈AngularJs中的隐藏和显示
2015/12/09 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
bat和python批量重命名文件的实现代码
2016/05/19 Python
Python正则表达式知识汇总
2017/09/22 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
总裁秘书岗位职责
2013/12/04 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
股权转让协议书
2014/12/07 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
Python快速优雅的批量修改Word文档样式
2021/05/20 Python
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers