赞
踩
队列:先进先出。 FIFO结构。5,4,3,2,1
如何FIFO呢?
已经学了array(数组) ,list(列表), linkedlist(单链表), DLL(双链表)
队列实现需要push(入队)和从队首pop(出队)
list 插入时间复杂度较高,
单链表:popleft和append都是O(1)。可以使用。
双链表:也可以用,但是实现相对复杂。
这里使用单链表实现队列:
方便查看直接把04章的单链表代码拷贝过来。
class Node(object): def __init__(self, value=None, next=None): self.value, self.next = value, next class LinkedList(object): def __init__(self, maxsize=None): self.maxsize = maxsize self.root = Node() self.length = 0 self.tailnode = None def __len__(self): return self.length def append(self, value): if self.maxsize is not None and len(self) > self.maxsize: return Exception("Full") node = Node(value) tailnode = self.tailnode if tailnode is None: # 第一个插入的值作为root入口的下一个节点。 self.root.next = node else: tailnode.next
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。