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

Projete um algoritmo (pseudocódigo) que, dado um grafo não direcionado representado por lista de adjacência…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF06CO02

Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete um algoritmo (pseudocódigo) que, dado um grafo não direcionado representado por lista de adjacência, determine todos os vértices de articulação (vértices de corte). Use variáveis como 'tempo', 'disc[v]' e 'low[v]' e explique a ideia principal do algoritmo.

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

Resposta esperada

Resposta modelo (pseudocódigo e ideia): Inicialize tempo=0; para todo v: disc[v]=-1, low[v]=8, pai[v]=NIL. Função DFS(u): disc[u]=low[u]=++tempo; filhos=0; para cada w em adj[u]: se disc[w]==-1 então pai[w]=u; filhos++; DFS(w); low[u]=min(low[u],low[w]); se pai[u]!=NIL e low[w]>=disc[u] então u é articulação; se pai[u]==NIL e filhos>1 então u é articulação; senão se w!=pai[u] então low[u]=min(low[u],disc[w]); Executar DFS(r) para cada vértice não visitado. Justificativa e correção: disc[u] registra tempo de descoberta; low[u] indica menor tempo alcançável por u via arestas de retorno. Se existe filho w tal que low[w]=disc[u], então não há caminho alternativo de w para antecessores de u sem passar por u, logo u é vértice de corte. Complexidade: cada aresta e vértice é explorado uma vez ? O(V+E).

Explicação

O algoritmo utiliza a busca em profundidade (DFS) para explorar o grafo e identificar vértices de articulação com base nos tempos de descoberta e nos menores tempos alcançáveis. A condição que verifica se um vértice é um ponto de articulação se fundamenta na relação entre os tempos de descoberta e os valores de low, assegurando que a remoção do vértice desconectaria o grafo. A complexidade do algoritmo é eficiente, pois cada vértice e aresta é visitado uma única vez, resultando em O(V + E).

Raio-X da questão

Dificuldade Difícil
Bloom Criar
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✍️ interpretativa🧩 desafio
🎯 Conceito central

vértices de articulação

📌 Objetivo

avaliacao

🧱 Pré-requisitos

grafos e suas representações · algoritmos de busca em profundidade

📚 Reveja

Revisar o algoritmo de Tarjan para encontrar vértices de articulação em grafos.

⚠️ Erro mais comum

O aluno pode confundir vértices de articulação com outros conceitos de grafos, como componentes conexos ou ciclos.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Programação - Tipos 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

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.