Escreva em linguagem descritiva um algoritmo que, recebendo a lista de adjacência de um grafo não direcionado…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar propriedades básicas de grafos.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Escreva em linguagem descritiva um algoritmo que, recebendo a lista de adjacência de um grafo não direcionado, retorne todas as componentes conexas e, para cada componente, a ordem de visitação dos seus vértices. Explique quais estruturas de dados usar e a complexidade do algoritmo.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Algoritmo (usando BFS ou DFS): 1) Inicialize array visitado[V]=false e lista componentes=[]. 2) Para cada vértice u de 0..V-1: se !visitado[u] então criar lista comp=[]. 3) Fazer fila Q; enfileirar u; marcar visitado[u]=true. 4) Enquanto Q não vazia: deque v; adicionar v a comp; para cada w em adj[v]: se !visitado[w] marcar visitado[w]=true e enfileirar w. 5) Ao terminar a busca, adicionar comp a componentes. 6) Retornar componentes (cada comp contém ordem de visitação). Estruturas: lista de adjacência, array booleano visitado, fila (para BFS) ou pilha/recursão (para DFS). Complexidade: O(V+E) tempo e O(V+E) espaço.
Explicação
O algoritmo utiliza uma abordagem de busca em largura (BFS) ou busca em profundidade (DFS) para explorar todos os vértices de cada componente conexa do grafo, garantindo que todos os vértices sejam visitados uma única vez. As estruturas de dados escolhidas, como a lista de adjacência e o array booleano, são adequadas para representar o grafo e controlar a visitação, enquanto a fila ou pilha facilita a implementação da busca. A complexidade O(V+E) reflete a eficiência do algoritmo, considerando que cada vértice e aresta é processado uma única vez.
Raio-X da questão
componentes conexas de grafos
avaliacao
listas de adjacência · estruturas de dados
Revisar conceitos de grafos e algoritmos de busca em profundidade.
O aluno pode confundir a ordem de visitação dos vértices, apresentando uma sequência incorreta ao descrever o algoritmo.
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…
- Desenvolva um algoritmo em pseudocódigo que, dado um grafo não direcionado representado por listas de adjacência…
- Descreva um algoritmo que, dado um grafo dirigido representando dependências entre tarefas (entrada como lista de…
- Escreva um algoritmo em linguagem descritiva que, recebendo uma lista de arestas (edge list) de um grafo com V vértices…
- Descreva, em termos de algoritmo que usa a variável 'visitado', como contar o número de componentes conexos em uma rede…
- Projete um algoritmo em pseudocódigo para detectar ciclos em um grafo dirigido representado por listas de adjacência…
🔎 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
