Descreva, em termos de algoritmo que usa a variável 'visitado', como contar o número de componentes conexos em…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar e construir a solução de problemas por meio da reutilização de partes de soluções existentes.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Descreva, em termos de algoritmo que usa a variável 'visitado', como contar o número de componentes conexos em uma rede representada por lista de adjacência.
- A) Contar componentes sem usar a variável 'visitado'.
- B) Usar DFS apenas em vértices com grau maior que 1.
- C) Percorrer todos os vértices; para cada vértice não visitado executar DFS/BFS marcando 'visitado' e incrementar um contador; o contador é o número de componentes.
- D) Incrementar o contador apenas quando todos vértices forem visitados.
- E) Execute apenas a busca em vértices visitados.
✅ Resposta correta: alternativa C
Resolução passo a passo
- Para contar componentes conexos em um grafo (rede) representado por lista de adjacência, precisamos de um algoritmo que visite cada componente exatamente uma vez. A variável 'visitado' registra quais vértices já foram alcançados por alguma busca. Passo 2: Inicie um contador de componentes com valor zero e marque todos os vértices como não visitados. Passo 3: Percorra todos os vértices da rede, um por um. Passo 4: Ao encontrar um vértice que ainda não foi visitado, ele pertence a um componente nunca explorado; então incremente o contador em 1 e execute uma DFS ou BFS a partir dele. Essa busca percorre toda a componente conexa, marcando como visitados todos os vértices alcançáveis pelas arestas da lista de adjacência. Passo 5: Quando o laço terminar, o contador contém o número de componentes conexos, pois cada componente foi iniciado exatamente uma vez, no seu primeiro vértice não visitado. Passo 6: Por que a alternativa C está certa: ela descreve exatamente esse procedimento, com varredura de todos os vértices, DFS/BFS apenas a partir de vértices não visitados, marcação e incremento do contador. Passo 7: Por que as outras estão erradas: a alternativa A elimina a variável 'visitado', sem a qual a busca reexploraria componentes já contados; a alternativa B restringe a busca a vértices de grau maior que 1, deixando de fora componentes formados por vértices isolados, que também contam; a alternativa D incrementa o contador somente ao final, o que não faz sentido, pois o número de componentes é contado a cada nova busca iniciada; a alternativa E manda buscar em vértices já visitados, o que é redundante e não conta componentes.
💡 Dica: Pense em como percorrer a lista de adjacência para identificar componentes.
Alternativa por alternativa
O aluno acredita que a variável 'visitado' é desnecessária para contar componentes, como se bastasse contar buscas sem controlar o que já foi percorrido. Na prática, sem ela, cada componente seria explorado repetidamente.
Por que engana: O aluno pode confundir a necessidade de marcar vértices como visitados, tentando contar componentes sem essa marcação, o que levaria a contagens incorretas.
O aluno confunde o critério de início da busca com o grau dos vértices, supondo que vértices de grau 0 ou 1 não formam componentes relevantes. Um vértice isolado (grau 0) é um componente conexo e precisa ser contado.
Cada chamada de DFS/BFS alcança todos os vértices de uma componente; iniciar busca apenas em vértices não visitados garante contar cada componente exatamente uma vez.
O aluno imagina que o contador só deve ser incrementado após visitar todos os vértices, confundindo o número de componentes com o total de vértices visitados. Dessa forma, o contador teria sempre valor 0 ou 1 e não representaria as componentes separadas.
O aluno inverte a lógica da busca, supondo que se deve explorar vértices já visitados. Isso não faz sentido, pois vértices visitados já pertencem a uma componente contada e não devem gerar nova contagem.
Raio-X da questão
componentes conexos
avaliacao
algoritmos de busca · listas de adjacência
Revisar algoritmos de busca em grafos e suas implementações.
O aluno pode confundir a necessidade de marcar vértices como visitados, tentando contar componentes sem essa marcação, o que levaria a contagens incorretas.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Escreva um algoritmo em linguagem descritiva que, dada a lista de adjacência de um grafo não direcionado e não…
- Escreva em linguagem descritiva um algoritmo que, recebendo a lista de adjacência de um grafo não direcionado, retorne…
- Desenvolva um algoritmo em pseudocódigo que, dado um grafo não direcionado representado por listas de adjacência…
- Descreva em pseudocódigo um algoritmo que, dada uma rede representada por um grafo com n nós e lista de arestas…
- Em um algoritmo que identifica componentes conexas em um grafo não direcionado usando DFS, qual variável (tipo de dado)…
- Ao projetar um algoritmo recursivo para percorrer uma rede de cidades representada por um grafo, qual estrutura de dados…
🔎 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
