Я могу помочь вам создать класс связанного списка и класс узла, а также предоставить вам некоторые распространенные операции со связанным списком. Вот пример реализации на Python:
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def is_empty(self):
return self.head is None
def append(self, data):
new_node = Node(data)
if self.is_empty():
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
def prepend(self, data):
new_node = Node(data)
if self.is_empty():
self.head = new_node
else:
new_node.next = self.head
self.head = new_node
def insert_after(self, prev_node, data):
if prev_node is None:
print("Previous node must be in the list.")
return
new_node = Node(data)
new_node.next = prev_node.next
prev_node.next = new_node
def delete(self, data):
if self.is_empty():
print("The list is empty.")
return
if self.head.data == data:
self.head = self.head.next
return
current = self.head
while current.next and current.next.data != data:
current = current.next
if current.next:
current.next = current.next.next
else:
print("Data not found in the list.")
def search(self, data):
current = self.head
while current:
if current.data == data:
return True
current = current.next
return False
def size(self):
count = 0
current = self.head
while current:
count += 1
current = current.next
return count
Приведенный выше код определяет класс Node, который представляет один узел в связанном списке. Каждый узел содержит атрибут dataи атрибут next, который указывает на следующий узел в списке.
Класс LinkedListпредставляет сам связанный список. Он имеет такие операции, как appendдля добавления нового узла в конец списка, prependдля добавления нового узла в начало списка, insert_after, чтобы вставить новый узел после заданного узла, delete, чтобы удалить узел с определенным значением данных, search, чтобы проверить, присутствует ли заданное значение данных в list и size, чтобы получить количество узлов в списке.