Em um algoritmo de Dijkstra implementado para um grafo ponderado com listas de adjacência, qual variável…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar e construir a solução de problemas por meio de refinamentos, utilizando diversos níveis de abstração desde a especificação até a implementação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em um algoritmo de Dijkstra implementado para um grafo ponderado com listas de adjacência, qual variável armazena a menor distância conhecida de cada vértice à fonte?
- A) Uma variável booleana que indica se um nó foi visitado.
- B) O vetor 'dist' (ou 'distância'), que contém a melhor estimativa de distância do vértice fonte a cada vértice.
- C) Uma lista encadeada ordenada, que permite acesso aleatório aos nós da árvore.
- D) Uma fila (queue), pois facilita a exploração de todos os nós antes de finalizar os atuais.
- E) Um array estático, onde os índices representam diretamente os nós da árvore.
✅ Resposta correta: alternativa B
Resolução passo a passo
- No algoritmo de Dijkstra, cada vértice precisa guardar a melhor estimativa de distância até a fonte, que é atualizada durante a execução. Essa informação fica normalmente em um vetor (array) chamado 'dist' ou 'distância', com uma posição para cada vértice.
- Inicialmente, dist[fonte] recebe 0 e os demais vértices recebem infinito. Ao examinar uma aresta do vértice u até o vértice v com peso p, se dist[u] + p for menor que dist[v], o valor de dist[v] é atualizado. Assim, ao final, dist[v] contém a menor distância encontrada da fonte até v.
- Por que as outras alternativas estão erradas:
- A) Uma variável booleana apenas indica se o nó já foi visitado ou finalizado; ela não guarda nenhuma distância.
- C) Uma lista encadeada ordenada não é a estrutura que guarda a distância de cada vértice e não oferece acesso aleatório eficiente.
- D) Uma fila é a estrutura de uma busca em largura, não armazena distâncias por vértice no Dijkstra.
- E) Um array estático com índices representando nós descreve uma forma de representar nós, mas não é a variável que armazena a menor distância conhecida; o array 'dist' é que cumpre esse papel.
- Conclusão: a resposta correta é a alternativa B, que coincide com o gabarito oficial.
💡 Dica: Lembre-se da estrutura de dados utilizada no algoritmo de Dijkstra.
Alternativa por alternativa
O aluno confunde o controle de visitação, usado para marcar nós já finalizados, com o armazenamento de distâncias. Acha que saber se um nó foi visitado já define sua distância mínima.
Dijkstra inicializa 'dist' com infinito e atualiza suas entradas ('relaxa' arestas) quando encontra caminhos mais curtos; esse vetor mantém as estimativas usadas para escolher o próximo vértice.
O aluno associa a estrutura de dados do algoritmo a uma lista encadeada ordenada, imaginando que ela guarda as distâncias. Não percebe que a distância por vértice é guardada em um vetor indexado pelo vértice.
O aluno mistura Dijkstra com busca em largura, imaginando que a fila de exploração é o local onde se armazena a menor distância. A fila (ou heap) apenas organiza a ordem de processamento dos vértices.
Por que engana: Confundir a variável que armazena a distância com a estrutura que controla a visitação dos nós.
O aluno considera que a estrutura de array indexada pelos nós basta para responder, sem perceber que a questão pede a variável que guarda a distância. O array só é útil porque armazena os valores de 'dist'.
Raio-X da questão
algoritmo de Dijkstra
avaliacao
estruturas de dados · algoritmos de busca
Revisar a implementação do algoritmo de Dijkstra e suas variáveis.
Confundir a variável que armazena a distância com a estrutura que controla a visitação dos nós.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- No algoritmo de Dijkstra para caminhos mínimos em um grafo com pesos não negativos, qual estrutura de dados é usada para…
- No algoritmo de Dijkstra para caminhos mínimos, qual estrutura de dado é comumente usada para selecionar rapidamente o…
- Ao aplicar o algoritmo BFS em uma rede social modelada como grafo não ponderado, qual estrutura de dado (variável) é…
- Ao representar um grafo ponderado com listas de adjacência, qual tipo de variável deve armazenar o peso de cada aresta e…
- Elabore um algoritmo em pseudocódigo que, dado um grafo representado por lista de adjacência e dois vértices (origem…
- Para que o algoritmo de Dijkstra retorne corretamente caminhos mínimos em um grafo (dirigido ou não) com pesos nas…
🔎 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
