双向链表
这里直接给出代码,有问题的看这里。
class _DoublyLinkedBase():
"""a base class poviding a boubly linked list representation"""
class _Node():
__slots__ = '_element','_prev','_next'
def __init__(self,element,prev,next):
self._element = element
self._prev = prev
self._next = next
def __init__(self):
"""create a empty list"""
self._header = self._node(None,None,None)
self._trailer = self._Node(None,None,None)
self._header._next = self._trailer
self._trailer._prev = self._header
self._size = 0
def __len__(self):
"""return the number of elements in the list"""
return self._size
def is_empty(self):
"""return true if the list is empty"""
return self._size==0
def _insert_between(self,e,predecessor,successor):
"""add element e between pre and suc"""
newest = self._Node(e,pre