Projete um algoritmo em pseudocódigo para detectar ciclos em um grafo dirigido representado por listas de…
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
Projete um algoritmo em pseudocódigo para detectar ciclos em um grafo dirigido representado por listas de adjacência; explique a estrutura de dados, os passos e a complexidade.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Usar DFS com marcação de estados: 0=não visitado, 1=visiting, 2=visitado. Pseudocódigo: DFS(u): state[u]=1; para v em adj[u]: se state[v]==0 então DFS(v) elif state[v]==1 então return true; fim; state[u]=2; return false. Executar DFS em todos os vértices não visitados. Estruturas: lista de adjacência e vetor de estados. Complexidade: O(V+E).
Explicação
A abordagem utiliza a busca em profundidade (DFS) para percorrer os vértices do grafo, marcando o estado de cada um para identificar ciclos. A marcação dos estados permite distinguir entre vértices que estão sendo visitados e aqueles que já foram completamente explorados, facilitando a detecção de ciclos. A complexidade O(V+E) reflete a eficiência do algoritmo, pois cada vértice e aresta é processado uma única vez.
Raio-X da questão
detecção de ciclos em grafos
avaliacao
estruturas de dados · algoritmos de busca
Revisar algoritmos de busca em grafos e suas complexidades.
O aluno pode confundir a detecção de ciclos com a simples travessia do grafo, não considerando as condições necessárias para identificar um ciclo.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Descreva, em pseudocódigo, um algoritmo que receba como dado um grafo direcionado G = (V,E) representando dependências…
- Escreva em linguagem descritiva um algoritmo que, recebendo a lista de adjacência de um grafo não direcionado, retorne…
- Descreva um algoritmo que, dado um grafo dirigido representando dependências entre tarefas (entrada como lista de…
- Projete um algoritmo (pseudocódigo) que, dado um grafo não direcionado representado por lista de adjacência, determine…
- Descreva um algoritmo, indicando as variáveis-chave e os passos, para detectar ciclos em um grafo dirigido usando…
- Desenvolva um algoritmo em pseudocódigo que, dado um grafo não direcionado representado por listas de adjacência…
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
