Junior — Middle
Por que a operação de adicionar um elemento no início de uma lista ligada é mais rápida do que em um array dinâmico?
sobes.tech IA
Resposta da IA
Numa lista ligada, adicionar um elemento ao início é uma operação com tempo constante O(1), porque basta criar um novo nó e redirecionar a referência para ele como o primeiro elemento. Num array dinâmico, no entanto, para adicionar um elemento ao início, é necessário deslocar todos os elementos existentes para a direita para abrir espaço, o que leva tempo O(n), onde n é o número de elementos.
Exemplo em 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;
}
}