GeraProva GeraProva Provas com IA para professores do Brasil
Computação4º anoBNCC EF15CO01Difícil⏱ longo

Um programa recebe um grafo dirigido que representa pré-requisitos entre disciplinas (nó = disciplina; aresta…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO01

Identificar as principais formas de organizar e representar a informação de maneira estruturada (matrizes, registros, listas e grafos) ou não estruturada (números, palavras, valores verdade).

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Um programa recebe um grafo dirigido que representa pré-requisitos entre disciplinas (nó = disciplina; aresta A?B indica A é pré-requisito de B). O algoritmo implementado usa DFS recursiva com marcações para detectar ciclos. (a) dê um caso de teste mínimo que contenha um ciclo; (b) identifique um erro comum na implementação DFS que pode impedir a detecção de ciclos; (c) proponha uma alternativa de técnica ou estrutura de dados para detectar ciclos eficientemente em grafos grandes e justifique.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

(a) Caso mínimo: três nós A,B,C com arestas A?B, B?C, C?A — existe ciclo A?B?C?A. (b) Erro comum: usar apenas um vetor booleano "visitado" e tratá-lo como indicação de presença na pilha recursiva; isso conflita estados e faz que arestas de retorno não sejam reconhecidas. A implementação correta separa estados (por exemplo cores: branca, cinza, preta) ou mantém uma pilha/flag "na pilha" para identificar back edges. (c) Alternativa: usar algoritmo de Kahn (topological sort por graus de entrada) que remove nós com grau 0 iterativamente; se ao final restarem nós, existe ciclo. Kahn e a abordagem de cores com DFS têm complexidade O(n + m) (n= nós, m=arestas). Para grafos grandes, representar adjacência com listas e índices em tabelas hash ou vetores permite operações de vizinhança e atualização de graus em tempo linear médio, reduzindo custo prático à ordem O(n+m) e favorecendo escalabilidade, com trade-off de uso adicional de memória para estruturas auxiliares.

Explicação

O caso mínimo apresentado demonstra claramente a presença de um ciclo, essencial para validar a detecção de ciclos em grafos. A identificação do erro comum na implementação de DFS destaca a importância de diferenciar os estados dos nós para evitar confusões na detecção de arestas de retorno. A proposta do algoritmo de Kahn como alternativa oferece uma abordagem eficiente e escalável para detectar ciclos, utilizando uma técnica que se adapta bem a grafos grandes, equilibrando complexidade e uso de memória.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ situacional🧩 desafio
🎯 Conceito central

detecção de ciclos em grafos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

grafos dirigidos · busca em profundidade (DFS)

📚 Reveja

Revisar algoritmos de busca em profundidade e estruturas de dados para grafos.

⚠️ Erro mais comum

O aluno pode confundir a marcação de nós visitados com a detecção de ciclos, levando a uma implementação que não verifica corretamente os nós em processo de visitação.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Organização e representação da informação

🔎 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.