Back to questions
Junior — Middle
65
Как определить временную сложность операции добавления элемента в конец связанного списка?
Answer from AI
sobes.tech AI
Временная сложность добавления элемента в конец связанного списка зависит от того, есть ли у списка указатель на последний элемент (хвост).
- Если есть указатель на хвост, добавление происходит за O(1), так как можно сразу добавить новый элемент после хвоста.
- Если указателя на хвост нет, нужно пройти по всему списку, чтобы найти последний элемент, и тогда сложность будет O(n), где n — количество элементов в списке.
Пример на Python с указателем на хвост:
class Node:
def __init__(self, value):
self.value = value
self.next = None
class LinkedList:
def __init__(self):
self.head = None
self.tail = None
def append(self, value):
new_node = Node(value)
if not self.head:
self.head = new_node
self.tail = new_node
else:
self.tail.next = new_node
self.tail = new_node
Здесь метод append работает за константное время O(1).