zoukankan      html  css  js  c++  java
  • python 队列

    队列的特征是:先进先出
    应用场景:消息通信、多进程间的协同、多线程间的协同等
    在队列中需要设计的实例属性:head节点、tail节点
    需要设计的实例方法有两个:分别是入队队列enqueue出队队列dequeue
     1 class Node(object):     #节点,包括两个属性,一个是节点的值,一个是节点的下一个指向
     2     def __init__(self,value):
     3         self.value = value   #节点的值
     4         self.next = None     #节点的下一个指向
     5 
     6 class Queue(object):        #队列这个类
     7     def __init__(self):     #初始化这个队列
     8         self.first = None      #队列的首尾指向的节点都是None,初始化
     9         self.last = None
    10 
    11     def enter(self,n):
    12         packNode = Node(n)      #创建Node新节点实例,值为n
    13         if self.first == None:  #如果首指向为空
    14             self.first = packNode       #将首指向的节点赋为传进来的节点
    15             self.last = self.first      #并且将尾指向的节点赋为
    16         else:
    17             self.last.next = packNode       #如果队列不为空,就将新的节点赋值到目前last的下一个位置
    18             self.last = packNode            #然后移动last指向,将last指向到刚才新增的节点
    19 
    20     def quit(self):
    21         if self.first == None:
    22             return None
    23         else:
    24             tmp = self.first.value          #如果队列中存在值,则把队列中第一个的值赋值给tmp
    25             self.first = self.first.next    #将first的指向下一个,变为first指向
    26             return tmp
    27 if __name__ == '__main__':
    28     print("------------队列开始--------")
    29     q = Queue()
    30     # n1 = Node(1)
    31     # n2 = Node(2)
    32     # n3 = Node(3)
    33     q.enter(1)
    34     q.enter(2)
    35     q.enter(3)
    36     print(q.quit())
    37     print(q.quit())
    38     print(q.quit())
    39     # print(q)
  • 相关阅读:
    LaTeX入门
    用jdom来解析xml文件小Demo
    Java乔晓松基于注解的面向AOP(切面)编程
    三层架构实战篇—系统登录实例
    selenium ide插件介绍
    WPF17行为(以控件在界面拖动为例)
    火狐浏览器显示“已阻止载入混合活动内容“的解决方法
    博客园—打赏功能
    网页返回顶部的几种方法
    自定义美化博客园
  • 原文地址:https://www.cnblogs.com/kunpengv5/p/ee920e521cd8e5a3da481df55779de6c.html
Copyright © 2011-2022 走看看