• Python实现队列


    队列的数据结构的主要结构:一个结点类和两个方法:出队列和进队列

    class Node(object):
    def __init__(self,val):
    self.val = val
    self.next = None

    class MyQueue(object):
    def __init__(self):
    self.first = None
    self.last = None

    def put(self, n):
    packNode = Node(n)
    if self.first == None:
    self.first = packNode
    self.last = packNode
    else:
    self.last.next = packNode
    self.last = packNode

    def get(self):
    if self.first==None:
    return None
    elif self.first==self.last:
    tmp=self.first.val
    self.first,self.last=self.first.next,self.first.next
    return tmp
    else:
    tmp=self.first.val
    self.first=self.first.next
    return tmp


    if __name__ == '__main__':
    q = MyQueue()
    q.put(1)
    print q.first.val
    print q.last.val
    q.put(2)
    print q.first.val
    print q.last.val
    print q.get()
    算法分析:
    每一个结点包含当前结点的值和下一个结点的实例(下个结点的值和下下个结点的实例),这样才串成队列
    1、定义一个类:结点。包含两个变量:结点的值(val)和下一个结点(next)的实例信息
    2、在另一个类:队列。定义两个变量:指向队列的开头和结尾的结点实例
    3、对队列操作的两个方法:
    (1)入队列:
    和队列中建立连接:实例化一个结点信息,赋值给 队列结尾的结点的next变量;
    加入到队列结尾:然后把队列结尾的值赋值为实例化的那个结点
    (2)出队列:
    把队列开头的结点赋值为下一个结点实例;
    返回复制前的实例的值(val)
  • 相关阅读:
    SQL Server需要监控哪些计数器
    将表里的数据批量生成INSERT语句的存储过程 继续增强版
    [Java]
    [Linux] 安装JBoss
    [Spring]
    [Spring]
    [Maven]
    [Maven]
    [Spring MVC]
    [Spring MVC]
  • 原文地址:https://www.cnblogs.com/emily-qin/p/7170320.html
Copyright © 2020-2023  润新知