代码实现
实现简易版本的双向不循环链表和单向循环链表。定义了头插、尾插、任意位置插入、删除和查找函数接口。
双向链表
class Node():
def __init__(self, data):
self.data = data
self.pre = None
self.next = None
class DoubleLinkList():
def __init__(self):
self._head = None
self._end = None
def add(self, data):
node = Node(data)
if self._head is None:
self._head = node
node.pre = None
else:
node.next = self._head
node.pre = None
self._head.pre = node
self._head = node
self._end = node
def append(self, data):
node = Node(data)
cur = self._head
while cur and cur.next:
cur = cur.next
if cur is None:
self.add(data)
else:
cur.next = node
node.pre = cur
self._end = node
def get_size(self):
cur = self._head
cnt = 0
while cur:
cur = cur.next
cnt += 1
return cnt
def insert(self, data, pos):
node = Node(data)
cur = self._head
pre =