Texto: dada uma matriz de adjacência com valores 0/1 (dado fornecido), qual procedimento aplicável usando uma…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Criar soluções de problemas para os quais seja adequado o uso de árvores e grafos para descrever suas informações e automatizá-las usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Texto: dada uma matriz de adjacência com valores 0/1 (dado fornecido), qual procedimento aplicável usando uma variável 'fila' em um algoritmo BFS permite verificar se o grafo é conectado?
- A) Enfileirar todos os vértices de uma vez e contar visitas.
- B) Usar apenas uma variável contador para somar graus e comparar com número de vértices.
- C) Aplicar algoritmo de caminho mínimo de Dijkstra com fila e confirmar distâncias finitas.
- D) Iniciar em um vértice, usar fila: enfileirar, marcar visitado, processar vizinhos até fila vazia; checar se todos visitados.
- E) Executar BFS em paralelo em vértices não conectados e comparar resultados.
✅ Resposta correta: alternativa D
Resolução passo a passo
- O grafo é conectado quando existe caminho entre qualquer par de vértices. Um BFS (busca em largura) a partir de um vértice alcança exatamente os vértices de sua componente conexa.
- O procedimento com fila funciona assim: escolhe-se um vértice inicial, ele é enfileirado e marcado como visitado; enquanto a fila não estiver vazia, retira-se o primeiro vértice, percorre-se a linha correspondente da matriz de adjacência (valores 1 indicam vizinhos), e cada vizinho ainda não visitado é marcado e enfileirado.
- Ao terminar (fila vazia), basta verificar se todos os vértices foram marcados como visitados. Se sim, o grafo é conectado; se algum ficou sem marca, ele não é conectado.
- Por que as outras estão erradas: A) enfileirar todos de uma vez não percorre arestas, então não testa alcançabilidade; B) somar graus não garante conectividade, pois um grafo pode ter graus altos e ainda ser desconexo; C) Dijkstra é algoritmo de caminho mínimo com pesos, não é o procedimento de BFS para conectividade; E) BFS em vértices não conectados não faz sentido, pois a busca a partir deles não alcança o restante do grafo e não gera uma verificação global.
- Conclusão: a alternativa D descreve corretamente o uso da fila no BFS para testar conectividade, em concordância com o gabarito oficial.
💡 Dica: Considere a inicialização da fila e a verificação de todos os vértices.
Alternativa por alternativa
Acredita que basta colocar todos os vértices na fila e contar quantos foram retirados, sem percorrer as arestas da matriz de adjacência.
Supõe que a soma dos graus, comparada ao número de vértices, indica conectividade, confundindo uma condição numérica com a existência de caminhos entre os vértices.
Associa BFS com fila a algoritmos de caminho mínimo e acha que distâncias finitas garantem conectividade, sem perceber que Dijkstra é outro algoritmo e que a questão pede o procedimento de BFS.
Por que engana: Confundir a abordagem de BFS com a de Dijkstra, aplicando a busca de caminho mínimo em vez de verificar a conectividade do grafo.
Correto: procedimento padrão de BFS para testar alcançabilidade e, portanto, conexidade.
Imagina que executar buscas em vértices desconectados e comparar os resultados testa a conectividade, sem entender que cada busca cobre apenas sua própria componente e não há verificação global.
Raio-X da questão
algoritmo BFS
avaliacao
algoritmos de busca · matrizes de adjacência
Revisar o conceito de grafos e a implementação do algoritmo BFS.
Confundir a abordagem de BFS com a de Dijkstra, aplicando a busca de caminho mínimo em vez de verificar a conectividade do grafo.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Descreva, em termos de algoritmo que usa a variável 'visitado', como contar o número de componentes conexos em uma rede…
- Descreva em pseudocódigo um algoritmo que, dada uma rede representada por um grafo com n nós e lista de arestas…
- Na tabela de arestas: A-B, B-C, C-D, E-F, aplique o algoritmo de busca em largura (BFS) para determinar quantos nós…
- Descreva em pseudocódigo, definindo registros e variáveis, um algoritmo que utilize busca em largura (BFS) para…
- Desenvolva um algoritmo em pseudocódigo que, dado um grafo não direcionado conectado e um vértice raiz, construa a…
- Ao aplicar o algoritmo BFS em uma rede social modelada como grafo não ponderado, qual estrutura de dado (variável) é…
Todas as questões de Programação - Programação usando grafos e árvores
🔎 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
