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

Descreva um algoritmo em alto nível que, dado um grafo não direcionado representado por lista de adjacência…

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

Descreva um algoritmo em alto nível que, dado um grafo não direcionado representado por lista de adjacência, identifique todos os vértices de articulação (cut vertices); explique como usar as variáveis 'tempo', 'disc' e 'low'.

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

Resposta esperada

Usar um DFS modificada (algoritmo de Tarjan): inicialize arrays disc[u], low[u], parent[u] e visited[u]; tempo = 0. Para cada vértice u não visitado, chame DFS(u). Em DFS(u): marque visited[u]=true; disc[u]=low[u]=++tempo; children=0. Para cada v em adj[u]: se v não visitado então parent[v]=u; children++; chamar DFS(v); low[u]=min(low[u], low[v]); se parent[u]==-1 e children>1 então u é ponto de articulação; se parent[u]!=-1 e low[v]>=disc[u] então u é ponto de articulação. Se v já visitado e v != parent[u], atualize low[u]=min(low[u], disc[v]). Complexidade: O(V+E). As variáveis: 'tempo' dá ordem de descoberta (disc), 'disc' registra tempo de descoberta, 'low' registra menor tempo alcançável por retrografo e permite decidir se uma subárvore depende de u para se conectar ao resto do grafo.

Explicação

O algoritmo apresentado utiliza a busca em profundidade (DFS) para identificar vértices de articulação, aproveitando as variáveis 'disc' e 'low' para rastrear a ordem de descoberta e a menor profundidade acessível, respectivamente. A lógica de verificação para determinar se um vértice é um ponto de articulação baseia-se na contagem de filhos e na comparação dos valores de 'low' e 'disc', assegurando que a remoção do vértice desconecte partes do grafo. A complexidade O(V+E) indica que o algoritmo é eficiente, percorrendo cada vértice e aresta uma única vez.

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

estruturas de dados · grafos não direcionados

📚 Reveja

Revisar conceitos de grafos e algoritmos de busca.

⚠️ Erro mais comum

O aluno pode confundir os conceitos de vértices de articulação com outros tipos de vértices, como vértices de corte ou vértices terminais.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Programação - Propriedades de grafos

🔎 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.