Advertisement
LilChicha174

list 1

Oct 28th, 2024
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.31 KB | None | 0 0
  1. class Node:
  2.     def __init__(self, data):
  3.         self.data = data  # Значение узла
  4.         self.next = None  # Ссылка на следующий узел
  5.  
  6. class SinglyLinkedList:
  7.     def __init__(self):
  8.         self.head = None  # Голова списка
  9.  
  10.     def is_empty(self):
  11.         """Проверяет, пуст ли список."""
  12.         return self.head is None
  13.  
  14.     def add_front(self, data):
  15.         """Добавляет элемент в начало списка."""
  16.         new_node = Node(data)
  17.         new_node.next = self.head
  18.         self.head = new_node
  19.  
  20.     def add_back(self, data):
  21.         """Добавляет элемент в конец списка."""
  22.         new_node = Node(data)
  23.         if self.is_empty():
  24.             self.head = new_node
  25.             return
  26.         current = self.head
  27.         while current.next:
  28.             current = current.next
  29.         current.next = new_node
  30.  
  31.     def remove(self, data):
  32.         """Удаляет первый узел с указанным значением."""
  33.         if self.is_empty():
  34.             print("Список пуст.")
  35.             return
  36.  
  37.         if self.head.data == data:
  38.             self.head = self.head.next
  39.             return
  40.  
  41.         current = self.head
  42.         while current.next:
  43.             if current.next.data == data:
  44.                 current.next = current.next.next
  45.                 return
  46.             current = current.next
  47.  
  48.         print(f"Элемент с данными {data} не найден.")
  49.  
  50.     def search(self, data):
  51.         """Ищет элемент в списке."""
  52.         current = self.head
  53.         while current:
  54.             if current.data == data:
  55.                 return True
  56.             current = current.next
  57.         return False
  58.  
  59.     def display(self):
  60.         """Отображает элементы списка."""
  61.         elements = []
  62.         current = self.head
  63.         while current:
  64.             elements.append(str(current.data))
  65.             current = current.next
  66.         print(" -> ".join(elements))
  67.  
  68.     def size(self):
  69.         """Возвращает размер списка."""
  70.         count = 0
  71.         current = self.head
  72.         while current:
  73.             count +=1
  74.             current = current.next
  75.         return count
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement