zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    jquery实现京东轮播图的简单写法
    prop方法实现全选效果
    jquery实现点击小图实现大图的案例
    jquery实现淘宝精品图片切换
    html+css实现下拉菜单效果
    jquery对象和DOM对象的联系及转化
    【学习】012 垃圾回收机制算法分析
    【学习】011 JVM参数调优配置
    【学习】010 Netty异步通信框架
    【学习】009 NIO编程
  • 原文地址:https://www.cnblogs.com/emily-qin/p/7170320.html
Copyright © 2011-2022 走看看