Módulo 4 - Listas ligadas: a corrente de nós

Lista ligada ou vetor: cada um no seu forte

9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 12/07/2026

O que você vai aprender

  • Comparar o custo de acesso do vetor e da lista ligada.
  • Comparar o custo de inserir e remover nas duas estruturas.
  • Escolher a estrutura conforme a operação mais frequente.
  • Evitar a ideia falsa de que uma estrutura é melhor em tudo.

Duas forças diferentes

As duas estruturas guardam uma sequência de valores, mas resolvem trocas opostas, e entender essa oposição é o que faz você escolher bem. O vetor mantém tudo encostado e numerado, então acessar a posição 500 é um cálculo instantâneo: ele sabe exatamente onde ela mora. Em compensação, mexer no meio custa caro, porque abrir ou fechar espaço obriga a empurrar os vizinhos. A lista ligada faz o contrário: mexer no meio é só religar, mas ela não tem numeração, então achar a posição 500 exige caminhar 500 nós. Uma é forte onde a outra é fraca. Não há vencedora absoluta, há a adequada para o que o seu programa faz mais vezes.

Vetor (array)

  • Acesso por índice: rápido, um passo (item[500] é direto).
  • Inserir ou remover no meio: caro, empurra os vizinhos.
  • Guarda tudo num bloco contínuo de memória.
  • Crescer pode exigir copiar tudo para um bloco maior.
  • Ótimo quando você lê muito por posição.

Lista ligada

  • Acesso por posição: lento, percorre a corrente (nó a nó).
  • Inserir ou remover onde você está: barato, só religa.
  • Nós espalhados, amarrados por ligações.
  • Crescer é só criar e engatar mais um nó.
  • Ótimo quando você insere e remove muito no meio.
Um comparativo em duas metades. À esquerda, o vetor: casas encostadas e numeradas de 0 a 4, com uma seta longa apontando direto para a casa 3 e o rótulo acesso direto por índice; abaixo, várias setas de empurrar mostrando que inserir no meio desloca os vizinhos. À direita, a lista ligada: nós espalhados unidos por ligações, com uma seta que caminha nó a nó desde a cabeça e o rótulo acesso sequencial; abaixo, duas ligações sendo religadas para inserir sem mover ninguém.
Vetor: acesso direto por índice, inserção cara. Lista ligada: acesso sequencial, inserção barata.

Escolher pela pergunta certa

A decisão fica fácil quando você inverte a ordem: em vez de perguntar qual estrutura é melhor, pergunte o que o programa faz o tempo todo. Se ele consulta muito por posição, mostrar o item de número tanto, saltar para o meio de uma tabela, o vetor ganha disparado, porque cada consulta é um passo. Se ele passa a vida inserindo e removendo elementos em pontos que já estão à mão, uma fila de tarefas que muda toda hora, uma lista de reprodução onde você arrasta músicas, a lista ligada brilha, porque cada mexida é só religar. A pergunta não é qual é a melhor estrutura do mundo, e sim qual operação eu repito mais, e depois escolher a estrutura que faz justamente essa operação barata.

🎮 Jogo da aula

Vetor ou lista ligada?

Cada situação favorece uma estrutura. Classifique conforme a operação mais frequente pede um vetor ou uma lista ligada.

O meio-termo da prática

Na vida real, a fronteira é menos rígida do que a teoria sugere. Muitas linguagens têm um vetor dinâmico, aquela lista comum do Python ou do JavaScript, que já cresce sozinho e é tão prático que serve para a maioria dos casos, mesmo com inserção no meio ocasional. A lista ligada pura aparece mais quando o padrão de uso é claramente de muita inserção e remoção, ou por baixo de outras estruturas, como filas e pilhas. O valor de estudar as duas não é decorar qual usar em cada linha de código, e sim ganhar o raciocínio de custo: toda estrutura troca uma coisa por outra, e escolher bem é saber qual troca o seu problema aceita.

Teste rápido

Um programa precisa, o tempo todo, ler o elemento de uma posição qualquer da coleção (o item 10, depois o 900, depois o 3). Qual estrutura é mais adequada e por quê?

Perguntas frequentes

Existe uma estrutura melhor que a outra?
Não em termos absolutos. Cada uma é forte onde a outra é fraca: o vetor no acesso por índice, a lista ligada na inserção e remoção no meio. A resposta certa é sempre relativa ao que o programa faz mais. Perguntar qual é melhor sem contexto não tem resposta boa.
Por que o acesso por índice é rápido no vetor?
Porque os elementos ficam encostados na memória, em posições calculáveis. Sabendo onde começa o vetor e o índice desejado, o computador calcula direto o endereço do elemento e vai até lá num passo, sem percorrer nada. É o que a lista ligada não consegue fazer.
A lista ligada é sempre mais lenta para acessar?
Para acessar uma posição específica pelo número, sim: ela precisa caminhar pela corrente. Mas se você vai percorrer todos os elementos em ordem, de uma ponta à outra, o custo se equipara, porque em ambos os casos você visita cada elemento uma vez.
Quando a inserção no vetor não é cara?
Quando é no fim. Acrescentar no final de um vetor costuma ser barato, porque não empurra ninguém (a menos que ele precise crescer). O custo alto do vetor é inserir ou remover no começo ou no meio, onde todos os elementos seguintes se deslocam.
Na prática, uso lista ligada com frequência?
Diretamente, pouco: o vetor dinâmico da linguagem resolve a maioria dos casos. Mas a lista ligada aparece por baixo de filas, pilhas e outras estruturas, e o raciocínio de custo que ela ensina vale para todas as decisões de estrutura de dados.
Como o consumo de memória se compara?
A lista ligada gasta um pouco mais por elemento, porque cada nó guarda, além do valor, a ligação para o próximo. O vetor guarda só os valores encostados. Em troca, o vetor pode reservar espaço a mais para crescer. É mais uma troca a considerar na escolha.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.