本文共 2263 字,大约阅读时间需要 7 分钟。
def __init__(self,value=None,prev=None,next=None): self.value,self.prev,self.next = value,prev,next class DoubleLinkedList(object): def __init__(self,maxsieze=None): node.next,node.prev = node,node if self.maxsieze is not None and len(self) > self.maxsieze: raise Exception("List is Full") tailnode = self.tailnode() self.root.prev = node #互指 def appendleft(self,value): if self.maxsieze is not None and len(self) > self.maxsieze: raise Exception("List is Full") if self.root.next is self.root: #如果链表为空 headnode = self.root.next def remove(self,node): #删除为O(1) 所以删除节点而不是值 node.prev.next = node.next node.next.prev = node.prev if self.root.next is self.root: while curnode.next is not self.root: for node in self.iter_node(): def iter_node_reverse(self): if self.root.prev is self.root: while curnode.prev is not self.root: class FullError(Exception): class EmptyError(Exception): class Deque(DoubleLinkedList): raise EmptyError('None!') tailnode = self.tailnode() raise EmptyError('None!') headnode = self.headnode() return self.deque.append(value) 转载地址:http://yheyz.baihongyu.com/