Em um programa que conta a frequência de palavras em um texto, qual estrutura de dados é mais adequada para…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir soluções computacionais de problemas de diferentes áreas do conhecimento, de forma individual e colaborativa, selecionando as estruturas de dados e técnicas adequadas, aperfeiçoando e articulando saberes escolares.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em um programa que conta a frequência de palavras em um texto, qual estrutura de dados é mais adequada para associar cada palavra a seu contador?
- A) Lista encadeada de palavras e contadores separados.
- B) Matriz bidimensional; palavras em linhas e contadores em colunas.
- C) Fila de prioridade, ordenando palavras por frequência.
- D) Árvore binária de busca, inserindo palavras como nós.
- E) Dicionário (tabela hash) que mapeia cada palavra ao seu contador.
✅ Resposta correta: alternativa E
Resolução passo a passo
- A tarefa é associar cada chave (palavra) a um valor (contador). Isso exige uma estrutura de mapeamento chave-valor, em que, dada a palavra, obtemos e atualizamos seu contador rapidamente.
- Um dicionário implementado com tabela hash faz essa busca, inserção e atualização em tempo médio constante, O(1), pois a chave é transformada por uma função hash diretamente em uma posição de memória. Por isso a alternativa E é a mais adequada.
- A alternativa A (lista encadeada separada) exigiria percorrer a lista inteira para encontrar a palavra, custando O(n) por operação, e os dados ficariam desacoplados entre palavras e contadores.
- A alternativa B (matriz bidimensional) não faz sentido, pois não há um número fixo de palavras nem uma relação de linhas e colunas entre elas; além disso, buscar a palavra na matriz também seria custoso.
- A alternativa C (fila de prioridade) serve para obter elementos de maior prioridade, não para localizar uma palavra específica; ordenar por frequência é uma saída desejável, mas não a estrutura de associação.
- A alternativa D (árvore binária de busca) permite buscar palavras em tempo O(log n) se balanceada, mas pode degenerar para O(n), e não é a estrutura típica e mais direta para associar chave e valor nesse problema.
💡 Dica: Considere as estruturas de dados mais comuns em programação.
Alternativa por alternativa
Acredita que armazenar palavras e contadores em listas separadas é uma forma natural de associá-los, sem perceber que a busca de uma palavra exige percorrer a lista inteira.
Por que engana: Escolher uma estrutura que não permite acesso rápido aos contadores, como lista encadeada ou matriz bidimensional.
Imagina que a organização em linhas e colunas facilita a associação, confundindo a estrutura de tabela com a de mapeamento chave-valor, sem considerar que o número de palavras não é fixo.
Confunde o objetivo de ordenar as palavras por frequência, que é um resultado final, com a necessidade de localizar rapidamente a palavra para atualizar seu contador.
Considera que qualquer árvore de busca garante desempenho ótimo, sem notar que, sem balanceamento, a busca pode degenerar para tempo linear e que a hash oferece acesso direto mais simples.
Tabelas hash permitem inserção e consulta médias em O(1), possibilitando incrementar contadores por chave sem varredura linear, ideal para contagem de ocorrências.
Raio-X da questão
estruturas de dados
avaliacao
estruturas de dados · tabela hash
Revisar as principais estruturas de dados e suas aplicações.
Escolher uma estrutura que não permite acesso rápido aos contadores, como lista encadeada ou matriz bidimensional.
ciencia_tecnologia
tomada_decisao
abstrato
Questões parecidas com resolução
- Dado um algoritmo que conta a frequência de palavras em redações escolares, qual estrutura de dados é mais adequada para…
- Ao projetar um algoritmo que conta ocorrências de palavras em um texto grande, qual estrutura de dados é mais eficiente…
- Qual estrutura de dados é mais adequada, em código, para construir uma tabela de frequências de categorias (por exemplo…
- Desenvolva um algoritmo que conte quantas vezes uma determinada palavra aparece em um texto. Apresente a lógica…
- Ao projetar um algoritmo que detecta padrões em uma sequência de eventos, qual estrutura de dados facilita buscas e…
- Considere um programa que precisa contar quantas vezes cada item aparece em uma lista. Qual técnica de programação seria…
🔎 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
