Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FCPC 2025

Algoritmos e Estrutura de DadosEstrutura de Dados
Código
qg457037
Banca
FCPC
Órgão
UFC
Ano
2025
Nível
Médio
Cargo
Técnico de Tecnologia da Informação / Área: Desenvolvimento de Multimídia
Em um jogo digital, é comum a exibição de uma listagem contendo informações sobre os jogadores que obtiveram as N maiores pontuações, sendo normalmente N um número menor que a quantidade total de jogadores com pontuação registrada no jogo (Galeria da Fama). Essa listagem é ordenada, em ordem decrescente de pontuação obtida. A estrutura de dados mais indicada para montar a Galeria da Fama é:
  1. APilha.
  2. BDicionário.
  3. CFila de prioridade.
  4. DLista duplamente encadeada.
Revelar gabarito e comentário

GabaritoC — Fila de prioridade.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Estrutura de dados para Galeria da Fama

Gabarito: letra C. A fila de prioridade (priority queue) é a estrutura mais adequada para manter as N maiores pontuações em ordem decrescente, pois permite inserir novos elementos e extrair o maior (ou menor) com complexidade O(log N), ideal quando N é pequeno em relação ao total de jogadores.

A banca testa o conhecimento prático de estruturas de dados. Uma fila de prioridade (geralmente implementada como heap) resolve o problema de forma eficiente:

  • Insere-se cada pontuação em O(log N).

  • Se o tamanho ultrapassar N, remove-se o menor (em uma fila de prioridade mínima) para manter apenas os N maiores.

  • Ao final, a fila contém as N maiores pontuações, podendo ser extraídas em ordem decrescente.

As demais alternativas são menos adequadas:

Alternativa A — ❌ Incorreta

Pilha (stack) opera no modo LIFO (Last In, First Out). Não mantém ordenação por prioridade ou valor. Inserir e remover não garante que as maiores pontuações permaneçam; seria necessário buscar e reordenar manualmente, o que é ineficiente.

Alternativa B — ❌ Incorreta

Dicionário (hash table) associa chaves a valores, sem qualquer ordem inerente. Para obter as N maiores pontuações, seria preciso ordenar todos os valores, custando O(M log M) para M jogadores, além de consumir memória extra.

Alternativa C — ✅ Correta ⟵ GABARITO

Fila de prioridade mantém os elementos com base em sua prioridade (a pontuação). Com uma heap mínima de tamanho N, garante-se que apenas as N maiores pontuações sejam armazenadas, com inserção e remoção em O(log N). É a estrutura clássica para problemas de "top N" ou "ranking".

Alternativa D — ❌ Incorreta

Lista duplamente encadeada permite inserção e remoção rápidas apenas nas pontas. Para manter a ordem decrescente, a cada nova pontuação seria necessário percorrer a lista até a posição correta (O(N) no pior caso). Embora funcione, é menos eficiente que a fila de prioridade, especialmente para muitos acessos.

PEGA ESSA DICA!

Sempre que um problema pedir para selecionar os N maiores/menores elementos de um conjunto maior, pense em fila de prioridade (heap). É a solução otimizada e muito cobrada em concursos e entrevistas. Compare:

Estrutura

Inserção

Obter maior

Manter N maiores

Pilha

O(1)

O(n)

Ineficiente

Dicionário

O(1) médio

O(n log n) (ordenar todos)

Ineficiente

Fila de prioridade

O(log n)

O(1)

O(log n) por inserção

Lista duplamente encadeada

O(n) (ordenada)

O(1) (se mantida)

O(n) por inserção

Gabarito: letra C.

Link permanente: /questoes/qg457037