# 建立节点 class Node: def __init__(self, value=None, next=None): self.value = value self.next = next class LinkedList: length = 0 # 初始化 def __init__(self): # 设置头节点 self.head = Node() # length = 0 # 加入节点 def addNode(self): # 遍历节点后计入 # 承载头节点 HeadNode = self.head for i in range(self.length + 1): if HeadNode.next == None: # 此加入节点为后插 value = int(input("请输入此节点的值:\n")) node = Node(value, None) # 加入链表 HeadNode.next = node node.next = None self.length += 1 else: # 如果不是最后一个节点就遍历 HeadNode = HeadNode.next def deleNode(self, index): # 承载头节点 HeadNode = self.head if index <= -1 or index + 1 > self.length: print("不成立") print(index) return # 遍历节点后删除 # 停留在前索引 for i in range(self.length): if i == index: if HeadNode.next.next == None: HeadNode.next = None self.length -= 1 return else: HeadNode.next = HeadNode.next.next self.length -= 1 else: # 如果不是最后一个节点就遍历 HeadNode = HeadNode.next def findNode(self): pass def indexNode(self): pass if __name__ == '__main__': link = LinkedList() link.addNode() # 增加 link.addNode() link.addNode() # 节点的遍历 # 非空判断 if link.head.next == None: print("未创建链表") index = int(input("请输入删除节点的索引(从1开始):\n")) link.deleNode(index - 1) # 删除 link.head = link.head.next for i in range(link.length): # print(link.length) print(f"{i+1}个节点值为", link.head.value) print(f"{i + 1}个节点值为", link.head.next) if i != link.length - 1: link.head = link.head.next
数据结构(构造链表,python版)
最新推荐文章于 2024-07-24 23:21:08 发布