1.单链表实现
# 单链表的实现
# 创建一个节点类
class Node(object):
# data 为数据,初始化next为none
def __init__(self,data):
self.data = data
self.next = None
# 创建一个单链表类
class SingleLinkList(object):
def __init__(self,node = None):
# 初始化一个空节点
self.__head = node
# 判断链表是否为空
def is_empty(self):
return self.__head == None
# 计算链表的长度
def Length(self):
# 设置一个游标,用来移动遍历节点
cur = self.__head
count = 0
while cur != None:
count += 1
cur = cur.next
return count
# 遍历链表
def travel(self):
cur = self.__head
while cur != None:
print(cur.data,end=' ')
cur = cur.next
print("")
# 尾部添加节点
def Append(self,data):
# 将添加数据转换成节点
node = Node(data)
if self.is_empty():
self.__head = node
else:
cur = self.__head
while cur.next != None:
cur = cur.next
cur.next = node
# 头部添加节点
def Add(self,item):
node = Node(item)
node.next = self.__head
self.__head = node
# 任意位置添加节点
def Insert(self,pos,data):
if pos == 0:
self.Add(data)
elif pos > self.Length()-1 :
self.Append(data)
else:
data = Node(data)
prior = self.__head
count = 0
while count < pos-1 :
count += 1
prior = prior.next
data.next = prior.next
prior.next = data
# 删除节点
def Remove(self,item):
sur = self.__head
prior = None
while sur != None:
if sur.data == item:
# 判断是否头