Junior — Middle
Miért gyorsabb az elem hozzáadása a láncolt lista elejére, mint egy dinamikus tömbben?
sobes.tech MI
Válasz az MI-től
В связном списке добавление элемента в начало — это операция с постоянным временем выполнения O(1), потому что достаточно создать новый узел и перенаправить ссылку на него как на новый первый элемент. В динамическом массиве же, чтобы добавить элемент в начало, нужно сдвинуть все существующие элементы вправо, чтобы освободить место, что занимает время O(n), где n — количество элементов.
Пример на Java:
class Node {
int value;
Node next;
Node(int value) { this.value = value; }
}
class LinkedList {
Node head;
void addFirst(int value) {
Node newNode = new Node(value);
newNode.next = head;
head = newNode;
}
}