先定义一个名为Node的类,用于表示链表中的节点,每个节点包含两个属性,data和next
self.data表示节点存储的数据
self.next表示指向下一个节点的引用
在初始化时,通过传入参数data来设置节点的数据,并将next属性设置为None,表示该节点尚未连接到其他节点
这个类可以用于构建链表的数据结构,其中每个节点都包含一个数据元素和一个纸箱下一个节点的
class Node:
def __init__(self, data):
self.data = data
self.next = None
各个用法
def is_empty(self): return self.head is None def length(self): count = 0 current = self.head while current is not None: count += 1 current = current.next return count def travel(self): current = self.head while current is not None: print(current.data, end=" -> ") current = current.next print("None") def add(self, item): new_node = Node(item) new_node.next = self.head self.head = new_node def append(self, item): new_node = Node(item) if self.is_empty(): self.head = new_node else: current = self.head while current.next is not None: current = current.next current.next = new_node def insert(self, item, position): if position <= 0: self.add(item) elif position > self.length() - 1: self.append(item) else: new_node = Node(item) current = self.head count = 0 while count < position - 1: count += 1 current = current.next new_node.next = current.next current.next = new_node def remove(self, item): if self.is_empty(): return if self.head.data == item: self.head = self.head.next return current = self.head while current.next is not None: if current.next.data == item: current.next = current.next.next return current = current.next def search(self, item): current = self.head while current is not None: if current.data == item: return True current = current.next return False ll = LinkedList() ll.append(1) ll.append(2) ll.append(3) ll.insert(0, 0) ll.insert(4, 5) ll.remove(2) ll.travel() # 输出:0 -> 1 -> 3 -> 4 -> None print(ll.search(3)) # 输出:True print(ll.search(5)) # 输出:False print(ll.length()) # 输出:5