python链接

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
posted @ 2020-04-10 11:49  taomin  阅读(204)  评论(0编辑  收藏  举报