GeraProva GeraProva Provas com IA para professores do Brasil
Computação9º anoBNCC EF09CO01Fácil⏱ curto

Uma plataforma brasileira de comunicação pretende representar as relações entre seus usuários. Nessa…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF09CO01

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

Uma plataforma brasileira de comunicação pretende representar as relações entre seus usuários. Nessa plataforma, seguir alguém não implica ser seguido por essa pessoa, portanto as relações são direcionadas. Há 10 mil usuários, mas cada usuário segue, em média, apenas 80 pessoas. O sistema precisa consultar com frequência a lista de pessoas seguidas por cada usuário e deve evitar reservar espaço para todas as possíveis combinações entre usuários. Com base nas características dessa plataforma, qual estrutura de dados é mais adequada para representar as relações entre os usuários, considerando que elas são direcionadas, pouco numerosas em comparação com as combinações possíveis e que se deseja consultar os vizinhos de cada usuário?

  1. A) Uma árvore binária.
  2. B) Uma lista encadeada simples.
  3. C) Uma matriz de adjacência.
  4. D) Uma lista de adjacência.
  5. E) Um registro de dados.

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. Identifique as exigências do problema. As relações são direcionadas (seguir não implica ser seguido), há 10 mil usuários, cada um segue em média 80 pessoas, o sistema consulta com frequência os vizinhos de cada usuário e deve evitar reservar espaço para todas as combinações possíveis entre usuários.
  2. Calcule a densidade do grafo. Com 10 mil usuários, a matriz completa teria 10.000 x 10.000 = 100 milhões de posições, e a maioria estaria vazia, pois cada usuário segue apenas cerca de 80 pessoas (total aproximado de 800 mil relações). Ou seja, o grafo é esparso.
  3. Escolha a estrutura adequada. A lista de adjacência guarda, para cada usuário, apenas a lista das pessoas que ele segue. Assim o espaço ocupado é proporcional ao número de relações existentes (cerca de 800 mil), não ao quadrado do número de usuários, e a consulta dos vizinhos de um usuário é direta e rápida. Além disso, a lista de adjacência representa naturalmente arcos direcionados.
  4. Por que as outras estão erradas. A) Uma árvore binária representa hierarquia sem ciclos e não modela bem uma rede social com relações arbitrárias e direcionadas. B) Uma lista encadeada simples é linear e não organiza as relações de cada usuário de forma a representar um grafo. C) A matriz de adjacência funciona, mas reserva espaço para todas as combinações possíveis, exatamente o que o enunciado pede para evitar. E) Um registro de dados agrupa campos de um mesmo item, mas não representa relações entre usuários.
  5. Conclusão. Como o grafo é direcionado, esparso e a consulta de vizinhos é frequente, a lista de adjacência é a estrutura mais adequada, alternativa D, que coincide com o gabarito oficial.

💡 Dica: Considere as estruturas de dados mais comuns para relacionamentos.

Alternativa por alternativa

A Erradaerro: Conceitual

Acredita que qualquer conjunto de relações entre usuários pode ser organizado em uma árvore binária, ignorando que a árvore não possui ciclos e tem ligações hierárquicas com no máximo dois filhos.

B Erradaerro: Conceituala que mais engana

Imagina que uma lista encadeada simples, por ser a estrutura de sequência mais conhecida, serve para guardar todas as relações entre usuários, sem perceber que ela não separa as conexões de cada vértice.

Por que engana: Confundir estruturas lineares como listas ou árvores com grafos para representar relacionamentos complexos entre usuários.

C Erradaerro: Interpretação

Considera que a matriz de adjacência é a representação padrão de grafos e não percebe que ela reserva espaço para todas as combinações entre usuários (100 milhões de células), contrariando a exigência do enunciado.

D Correta

A lista de adjacência associa cada usuário à lista dos usuários que ele segue. Ela representa naturalmente relações direcionadas e, como cada usuário possui relativamente poucos relacionamentos, utiliza espaço proporcional ao número efetivo de conexões, sem reservar posições para todas as combinações possíveis. Além disso, permite consultar diretamente os vizinhos de cada usuário.

E Erradaerro: Conceitual

Confunde o termo 'registro', usado para agrupar dados de um mesmo item, com uma estrutura capaz de modelar relações entre diferentes usuários.

Raio-X da questão

Dificuldade Fácil
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ direta🧩 consolidacao
🎯 Conceito central

estruturas de dados

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estruturas de dados básicas · conceito de grafos

📚 Reveja

Revisar as principais estruturas de dados utilizadas em redes sociais.

⚠️ Erro mais comum

Confundir estruturas lineares como listas ou árvores com grafos para representar relacionamentos complexos entre usuários.

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

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.