GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF07CO01Média⏱ medio

Entre uma lista ligada e um vetor (array), qual estrutura permite acesso direto ao elemento de índice i em…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF07CO01

Criar soluções de problemas para os quais seja adequado o uso de registros e matrizes unidimensionais para descrever suas informações e automatizá-las usando uma linguagem de programação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Entre uma lista ligada e um vetor (array), qual estrutura permite acesso direto ao elemento de índice i em tempo O(1) e por que a outra exige tempo O(i) para acessar o mesmo índice?

  1. A) Vetor (array): acesso direto por índice em O(1).
  2. B) Lista ligada acessa índice i em O(1); array exige O(i) por realocação.
  3. C) Lista ligada acessa índice i em O(log n) usando ponteiros binários.
  4. D) Ambas acessam índice i em O(i) porque mesmo arrays precisam iterar elementos.
  5. E) Ambas estruturas acessam índice i em O(1) sempre.

✅ Resposta correta: alternativa A

Resolução passo a passo

  1. Em um vetor (array), os elementos ficam armazenados em posições de memória contíguas e de tamanho fixo. Assim, o endereço do elemento de índice i é calculado diretamente pela fórmula endereço_base + i * tamanho_do_elemento, o que leva tempo constante O(1), independentemente de i.
  2. Em uma lista ligada, cada nó guarda o dado e um ponteiro para o próximo nó, e não há cálculo de endereço por posição. Para chegar ao índice i é preciso começar pelo primeiro nó e seguir i ponteiros, um de cada vez. Por isso o acesso exige tempo O(i), que no pior caso é O(n).
  3. Conclusão: a alternativa correta é a A, pois ela afirma exatamente que o vetor acessa diretamente por índice em O(1). O enunciado pergunta qual estrutura permite acesso direto e por que a outra exige O(i); a alternativa A responde a primeira parte corretamente, e a segunda parte é o contraste implícito com a lista ligada descrito no Passo 2.
  4. Por que as outras estão erradas:
  5. B) Inverte as estruturas: é a lista ligada que exige percorrer nós, e o array não precisa de realocação para acessar um índice.
  6. C) Não existe busca binária por ponteiros na lista ligada comum; o acesso continua linear, O(i).
  7. D) Está errada porque arrays não precisam iterar elementos para acessar um índice, pois o endereço é calculado diretamente.
  8. E) Está errada porque a lista ligada não acessa índice em O(1); esse acesso exige percorrer os nós.
  9. Observação: o gabarito oficial (A) coincide com a resolução feita por conta própria.

💡 Dica: Compare as características de acesso das duas estruturas.

Alternativa por alternativa

A Correta

Arrays armazenam elementos em memória contígua e o endereço do índice i é calculado diretamente; listas ligadas armazenam nós encadeados exigindo percorrer i ponteiros até o nó desejado, o que leva O(i).

B Erradaerro: Conceituala que mais engana

O aluno inverteu o comportamento das estruturas, achando que a lista ligada acessa por índice em tempo constante e que o array depende de realocação para isso. Realocação ocorre na inserção de elementos em arrays dinâmicos, não no acesso por índice.

Por que engana: Confundir o tempo de acesso de uma lista ligada com o de um vetor, acreditando que ambos têm acesso O(1).

C Erradaerro: Conceitual

O aluno supôs que a lista ligada poderia usar uma estrutura de busca binária baseada em ponteiros, o que confunde a lista ligada com árvores binárias. A lista ligada simples não permite busca logarítmica, pois só há acesso sequencial.

D Erradaerro: Senso comum

O aluno imaginou que o array também precisa percorrer elementos até o índice, aplicando à estrutura contígua a lógica sequencial da lista. Não percebeu que o endereço do índice i é calculado diretamente pela aritmética de endereços.

E Erradaerro: Conceitual

O aluno assumiu que qualquer estrutura de dados acessa qualquer índice em tempo constante, sem distinguir armazenamento contíguo de armazenamento encadeado. Esquece que na lista ligada é preciso seguir os ponteiros de nó em nó.

Raio-X da questão

Dificuldade Média
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade dupla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ comparativa🧩 desafio
🎯 Conceito central

acesso a elementos em estruturas

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estruturas de dados · complexidade de algoritmos

📚 Reveja

Revisar as diferenças entre listas ligadas e vetores.

⚠️ Erro mais comum

Confundir o tempo de acesso de uma lista ligada com o de um vetor, acreditando que ambos têm acesso O(1).

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Programação - Programação usando registros e matrizes

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.