— Se eu voltar pelo mesmo corredor, chego de novo na entrada? — perguntou uma visitante ao testar o aplicativo…
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
— Se eu voltar pelo mesmo corredor, chego de novo na entrada? — perguntou uma visitante ao testar o aplicativo de um museu interativo. O app deve mostrar, em cada sala, as opções de próxima sala. O mapa do museu tem as salas: Entrada, Mar, Mata, Sertão, Mirante e Saída. Os corredores funcionam assim: Entrada liga com Mar; Mar liga com Mata; Mata liga com Sertão; Sertão liga com Mar (formando um caminho circular). Há ainda uma escada rolante que leva do Sertão ao Mirante, mas não permite voltar. Do Mirante, o visitante segue para a Saída. Além disso, a Mata também tem um corredor direto para a Saída. A equipe quer guardar essas ligações em uma estrutura que permita ao programa listar “para onde dá para ir” a partir de qualquer sala, respeitando o sentido único da escada rolante. Com base no texto, identifique a modelagem de dados mais adequada para programar a função que lista as próximas salas possíveis a partir de cada sala, respeitando caminhos circulares e passagem de sentido único.
- A) Modelar como lista linear de salas em uma ordem fixa de visita, avançando sempre para o próximo item
- B) Modelar como árvore binária ordenada pelo nome da sala, guardando filhos “esquerda” e “direita”
- C) Modelar como grafo direcionado, usando lista de adjacência para registrar as saídas de cada sala
- D) Modelar como árvore enraizada na Entrada, guardando em cada sala apenas o ponteiro para sua sala-pai
- E) Modelar como grafo não direcionado, usando lista de adjacência para registrar as ligações entre as salas
✅ Resposta correta: alternativa C
Resolução passo a passo
- A tarefa é listar, a partir de cada sala, para onde dá para ir. Para isso, cada sala precisa guardar suas saídas possíveis, e o sentido das ligações importa. Passo 2: Os corredores comuns (Entrada-Mar, Mar-Mata, Mata-Sertão, Sertão-Mar) podem ser percorridos nos dois sentidos, pois a visitante pode voltar pelo mesmo corredor. Já a escada rolante do Sertão ao Mirante só vai em um sentido, e o Mirante leva apenas à Saída. Passo 3: Como o sentido importa, a modelagem adequada é um grafo direcionado. Cada sala é um vértice e cada passagem possível é uma aresta com origem e destino. Passo 4: A lista de adjacência registra, para cada sala, apenas as salas de destino: Entrada: Mar; Mar: Entrada e Mata; Mata: Mar, Sertão e Saída; Sertão: Mar e Mirante; Mirante: Saída; Saída: nenhuma. A função de listagem apenas lê a lista da sala atual. Passo 5: O caminho circular Mar-Mata-Sertão-Mar não é um problema, pois a lista de adjacência aceita ciclos sem exigir hierarquia nem ordem. Passo 6: Por que as outras estão erradas: A, a lista linear, impõe uma sequência única e não representa bifurcações nem ciclos. B, a árvore binária ordenada, supõe no máximo dois filhos por sala e hierarquia, o que não representa Mata com três saídas nem o ciclo. D, a árvore enraizada na Entrada, não comporta ciclos nem caminhos alternativos como Mata-Saída e Sertão-Mar. E, o grafo não direcionado, perderia o sentido único da escada e permitiria voltar do Mirante ao Sertão, o que contraria o enunciado.
💡 Dica: Identifique a estrutura de dados que representa caminhos com direções e ciclos.
Alternativa por alternativa
Supõe que a visita segue um roteiro fixo, como uma sequência de salas, e ignora que a Mata tem duas saídas e que há um ciclo entre Mar, Mata e Sertão.
Confunde a estrutura de navegação com uma árvore de busca ordenada por nome, assumindo que cada sala tem no máximo dois sucessores e uma hierarquia.
Há ciclo (Sertão->Mar->Mata->Sertão) e uma passagem de mão única (Sertão->Mirante), o que pede grafo direcionado; lista de adjacência lista vizinhos.
Imagina o museu como uma hierarquia de pastas a partir da Entrada, sem perceber que há ciclos e que uma sala pode ser acessada por mais de um caminho.
Trata todos os corredores como de mão dupla e esquece a escada rolante de sentido único, o que permitiria voltar do Mirante ao Sertão.
Por que engana: Confundir grafos direcionados com não direcionados ou usar estruturas lineares inadequadas para representar caminhos com sentido único e ciclos.
Raio-X da questão
grafo direcionado e lista de adjacência
avaliacao
estruturas de dados básicas · conceito de grafo
Estude grafos direcionados e estruturas de dados para representar conexões com sentido.
Confundir grafos direcionados com não direcionados ou usar estruturas lineares inadequadas para representar caminhos com sentido único e ciclos.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- Em um jogo, cada sala é representada por um ponto. Os corredores ligam as salas, e uma sala pode ter vários corredores…
- Uma equipe de mobilidade urbana está desenvolvendo um aplicativo para planejar viagens entre cidades brasileiras. Cada…
- Por que alguns visitantes se perdem dentro de um museu grande? Para diminuir isso, um museu montou um totem que sugere…
- — A fila andou rápido, mas a confusão começou na hora de sentar — comentou um voluntário na sessão de cinema ao ar livre…
- No painel de um aplicativo de mobilidade, a equipe de desenvolvimento registrou os pontos de aluguel de bicicletas da…
- Identifique qual estrutura de dados é mais adequada para armazenar uma lista de alunos em uma sala de aula.
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
