Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self, data):
- self.data = data # Значение узла
- self.next = None # Ссылка на следующий узел
- class SinglyLinkedList:
- def __init__(self):
- self.head = None # Голова списка
- def is_empty(self):
- """Проверяет, пуст ли список."""
- return self.head is None
- def add_front(self, data):
- """Добавляет элемент в начало списка."""
- new_node = Node(data)
- new_node.next = self.head
- self.head = new_node
- def add_back(self, data):
- """Добавляет элемент в конец списка."""
- new_node = Node(data)
- if self.is_empty():
- self.head = new_node
- return
- current = self.head
- while current.next:
- current = current.next
- current.next = new_node
- def remove(self, data):
- """Удаляет первый узел с указанным значением."""
- if self.is_empty():
- print("Список пуст.")
- return
- if self.head.data == data:
- self.head = self.head.next
- return
- current = self.head
- while current.next:
- if current.next.data == data:
- current.next = current.next.next
- return
- current = current.next
- print(f"Элемент с данными {data} не найден.")
- def search(self, data):
- """Ищет элемент в списке."""
- current = self.head
- while current:
- if current.data == data:
- return True
- current = current.next
- return False
- def display(self):
- """Отображает элементы списка."""
- elements = []
- current = self.head
- while current:
- elements.append(str(current.data))
- current = current.next
- print(" -> ".join(elements))
- def size(self):
- """Возвращает размер списка."""
- count = 0
- current = self.head
- while current:
- count +=1
- current = current.next
- return count
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement