Em um algoritmo que precisa permitir inserções e remoções frequentes no meio de uma sequência de comandos…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em um algoritmo que precisa permitir inserções e remoções frequentes no meio de uma sequência de comandos editáveis, qual estrutura de dados é mais apropriada para minimizar custo dessas operações?
- A) Lista encadeada (lista)
- B) Fila (queue)
- C) Vetor/array
- D) Pilha (stack)
- E) Árvore binária de busca
✅ Resposta correta: alternativa A
Resolução passo a passo
- O enunciado pede uma estrutura para uma sequência em que há inserções e remoções frequentes no meio dos dados. Nesse cenário, o que mais pesa é o custo de deslocar elementos. Passo 2: Em um vetor (array), inserir ou remover no meio exige deslocar todos os elementos seguintes, o que custa O(n) no pior caso. Passo 3: Em uma lista encadeada, basta ajustar os ponteiros dos nós vizinhos. Com a referência do nó, a inserção e a remoção custam O(1), sem deslocar outros elementos. Passo 4: A alternativa A é a correta, pois a lista encadeada minimiza o custo dessas operações. Passo 5: A alternativa B está errada, pois a fila foi feita para inserir só no fim e remover só no início, sem acesso ao meio. Passo 6: A alternativa C está errada, pois o vetor exige deslocamento de elementos a cada inserção ou remoção no meio. Passo 7: A alternativa D está errada, pois a pilha permite operações apenas no topo, e não no meio da sequência. Passo 8: A alternativa E está errada, pois a árvore binária de busca mantém os dados ordenados por chave, o que não atende a uma sequência editável na posição desejada, e suas operações custam O(log n) com rebalanceamento quando a árvore não é balanceada. Passo 9: O gabarito oficial A está correto e coincide com a resolução feita de forma independente.
💡 Dica: Considere as operações de inserção e remoção em diferentes estruturas de dados.
Alternativa por alternativa
A lista encadeada permite inserir e remover elementos no meio ajustando ponteiros sem mover todo o bloco de memória, reduzindo custo quando há muitas alterações locais.
O aluno pode ter associado a palavra sequência ao acesso ordenado e concluído que a fila, por manter a ordem de chegada, resolve a edição no meio. A fila só permite inserir no fim e remover no início.
O aluno pode ter pensado que o vetor é a estrutura mais eficiente por ser contígua e de acesso direto por índice, sem considerar que inserir no meio exige deslocar todos os elementos seguintes.
Por que engana: Escolher uma estrutura de dados que não permite inserções e remoções eficientes, como vetor, que exige deslocamento de elementos.
O aluno pode ter confundido a pilha, que é uma sequência com acesso restrito ao topo, com uma estrutura flexível para edição. Ele não percebeu que a pilha não permite operações no meio.
O aluno pode ter achado que a árvore binária de busca, por ser uma estrutura eficiente para busca e inserção, serve para qualquer edição. Ela organiza os dados por chave e não por posição na sequência, e custa O(log n), mais do que o O(1) da lista encadeada.
Raio-X da questão
estruturas de dados
avaliacao
estruturas de dados · complexidade de algoritmos
Revisar as características de listas encadeadas e arrays.
Escolher uma estrutura de dados que não permite inserções e remoções eficientes, como vetor, que exige deslocamento de elementos.
ciencia_tecnologia
tomada_decisao
abstrato
Questões parecidas com resolução
- Lia criou um caminho no tabuleiro. O tablet usa “andar 10 passos”, e o robô usa “andar 1 quadrado”. Por que Lia escreveu…
- Algoritmo: "Ler nota. Se nota >= 60 então imprimir 'Aprovado'. Senão imprimir 'Reprovado'." Qual será a saída para nota…
- Na sala, um algoritmo manda ler a temperatura. Se ela for maior que 30 graus, deve ligar o ventilador; caso contrário…
- Descreva em passos um algoritmo que, recebendo a lista de adjacência de um grafo não direcionado, retorne todas as…
- Descreva um algoritmo em pseudocódigo que, dado n variáveis booleanas (dados de entrada), gere todas as 2^n combinações…
- Projete um algoritmo em pseudocódigo que receba uma lista de nomes (strings) como dado de entrada e devolva uma lista de…
🔎 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
