-
#链表的制作(包含功能: 从头部添加数据,从尾部添加数据,在中间插入数据,查看链表长度,遍历链表,反转链表,删除数据) class Node(): def __init__(self,item): self.item = item self.next = None class Link(): def __init__(self): self.head = None def addByHead(self,item): node = Node(item) node.next = self.head self.head = node def isEmpty(self): return self.head == None def addByTail(self,item): node = Node(item) if self.isEmpty(): #链表为空的操作 self.head = node return # 链表为非空的操作 pre = None cur = self.head while cur: pre = cur cur = cur.next pre.next = node def insertNode(self,item,pos): node = Node(item) pre = None cur = self.head if pos == 0: self.addByHead(node) return for i in range(pos): pre = cur cur = cur.next pre.next = node node.next = cur def Length(self): count =0 cur = self.head while cur: cur = cur.next count +=1 return count def removeNode(self,item): pre = None cur = self.head nextnode = cur.next if item == self.head.item: self.head = self.head.next return while cur: if cur.item == item: pre.next = nextnode return pre = cur cur = cur.next nextnode = cur.next def reverse(self): pre = None cur = self.head while cur: nextnode = cur.next cur.next = pre pre = cur cur = nextnode self.head = pre
浙公网安备 33010602011771号