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

Desenvolva um algoritmo em pseudocódigo que, dado um grafo não direcionado conectado e um vértice raiz…

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

Desenvolva um algoritmo em pseudocódigo que, dado um grafo não direcionado conectado e um vértice raiz, construa a árvore de busca em largura (BFS tree) e retorne o nível (distância em número de arestas) de cada vértice em relação à raiz. Explique as variáveis principais.

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

Resposta esperada

Pseudocódigo: function BFS_tree(grafo, raiz): para cada v em grafo.vertices: nivel[v] = -1 visitado[v] = false pai[v] = null fila = novaFila() visitado[raiz] = true nivel[raiz] = 0 fila.enqueue(raiz) enquanto not fila.vazia(): u = fila.dequeue() para cada v em grafo.adj[u]: se not visitado[v]: visitado[v] = true pai[v] = u nivel[v] = nivel[u] + 1 fila.enqueue(v) retornar pai, nivel Variáveis principais: - fila: controla a ordem de exploração por níveis (FIFO). - visitado[v]: booleano que evita revisitar vértices e previne ciclos. - nivel[v]: inteiro com a distância em número de arestas desde a raiz. - pai[v]: referência ao antecessor na árvore de busca (opcional, constrói a BFS tree). Complexidade: O(n + m) onde n = número de vértices e m = número de arestas.

Explicação

O algoritmo utiliza a abordagem de busca em largura, que explora todos os vértices em um nível antes de passar para o próximo, garantindo que a distância em arestas de cada vértice em relação à raiz seja corretamente calculada. As variáveis principais, como a fila e os arrays de visitados, níveis e pais, organizam a exploração e armazenamento das informações necessárias para construir a árvore de busca. A complexidade O(n + m) reflete a eficiência do algoritmo, uma vez que cada vértice e aresta é processado 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

árvore de busca em largura

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmos de busca · estrutura de dados grafo

📚 Reveja

Revisar conceitos de grafos e algoritmos de busca.

⚠️ Erro mais comum

O aluno pode confundir a busca em largura com a busca em profundidade, implementando um algoritmo incorreto.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

criatividade

🏫 Contexto

cientifico

Questões parecidas com resolução

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

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.