Sobes.tech
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;
    }
}