クラスとリスト全体を管理するNode
クラスを作成することが含まれます。 それぞれLinkedList
には、シーケンス内の次のノードへのデータとポインターが含まれています。 Node
クラスには通常、挿入、削除、検索、およびトラバーサルの方法が含まれています。LinkedList
class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): self.head = None def append(self, data): new_node = Node(data) if not self.head: self.head = new_node return current = self.head while current.next: current = current.next current.next = new_node def prepend(self, data): new_node = Node(data) new_node.next = self.head self.head = new_node def delete_node(self, key): current = self.head if current and current.data == key: self.head = current.next current = None return prev = None while current and current.data != key: prev = current current = current.next if current is None: return prev.next = current.next current = None def print_list(self): current = self.head while current: print(current.data, end=" -> ") current = current.next print("None") #Example Usage llist = LinkedList() llist.append(1) llist.append(2) llist.append(3) llist.prepend(0) llist.delete_node(2) llist.print_list() # Output: 0 -> 1 -> 3 -> None
delete_node
メソッドは、線形時間削除を示しています。 検索の効率を向上させるには、特定のノードを頻繁に検索する必要がある場合は、自己バランスのとれたバイナリ検索ツリーまたはハッシュテーブルの使用を検討できます。 ただし、これらにはデータストレージの大幅な再構築が必要です。
リンクリストは、ランダムアクセスよりも動的な挿入と削除がより重要なシナリオでアプリケーションを見つけます:
以上がPythonにリンクリストを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。