class node:
def __init__(self,data=None):
self.data = data
self.next = None
class link:
def __init__(self):
self.head = None
def append(self,node):
if self.head is None:
self.head = node
return
lastnode = self.head
while(lastnode.next!=None):
lastnode = lastnode.next
lastnode.next = node
return
def insert(self,node,index):
if len(self)<=index:
raise RuntimeError("长度异常")
leftnode = None
headnode = self.head
for i in range(index):
leftnode = headnode.next
rightnode = leftnode.next
leftnode.next = node
node.next = rightnode
return
def addfirst(self,node):
head = self.head
self.head = node
node.next = head
return
def del_node(self,data):
node = self.head
#删除head节点
if node.data == data:
self.head = node.next
return
#删除尾部节点
for i in range(len(self)):
if node.next.data == data and node.next.next==None:
node.next = None
return
#删除中间节点
for i in range(len(self)):
if node.next.data == data:
node.next = node.next.next
return
node = node.next
return
def __len__(self):
if self.head==None:
return 0
else:
lenth = 1
node = self.head
while(node.next!=None):
lenth+=1
node = node.next
return lenth
def print(self):
node = self.head
for i in range(len(self)):
print(node.data)
node = node.next
return