Junior — Middle
Jaka jest złożoność czasowa operacji dodania elementu na koniec listy powiązanej?
sobes.tech AI
Odpowiedź od AI
Złożoność czasowa operacji dodawania elementu na koniec listy powiązanej zależy od tego, czy lista ma wskaźnik na ostatni element.
- Jeśli istnieje wskaźnik na ogon (tail), dodanie odbywa się w O(1), ponieważ można od razu dodać nowy element za ogonem.
- Jeśli wskaźnik na ogon nie istnieje, trzeba przejść przez całą listę, aby znaleźć ostatni element, a wtedy złożoność będzie O(n), gdzie n to liczba elementów na liście.
Przykład z wskaźnikiem na ogon:
class LinkedList {
Node head;
Node tail;
void addLast(int value) {
Node newNode = new Node(value);
if (head == null) {
head = newNode;
tail = newNode;
} else {
tail.next = newNode;
tail = newNode;
}
}
}