Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FUNDATEC 2023

Algoritmos e Estrutura de DadosEstrutura de Dados
Código
qq900108
Banca
FUNDATEC
Órgão
Prefeitura de Farroupilha - RS
Ano
2023
Nível
Médio
Cargo
Auxiliar Técnico - Técnico em Informática
Considere uma situação em que você precisa implementar um algoritmo que deve processar uma grande quantidade de dados em um curto espaço de tempo, e a ordem em que esses dados são processados é importante para o resultado final. Qual estrutura você usaria para armazenar esses dados?
  1. AVetor.
  2. BLista.
  3. CFila.
  4. DPilha.
  5. EÁrvore.
Revelar gabarito e comentário

GabaritoC — Fila.

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”.

Estruturas de Dados: Filas

Gabarito: letra C (Fila). A fila é a estrutura que implementa o princípio FIFO (First In, First Out), garantindo que os dados sejam processados exatamente na ordem em que chegaram — requisito central do enunciado. É ideal para processar grandes volumes em sequência, com inserções e remoções eficientes (ambas O(1) em implementações típicas).

A questão testa o conhecimento das propriedades fundamentais de cada estrutura, especialmente a relação entre ordem de chegada e ordem de processamento.

Estrutura

Princípio de Funcionamento

Ordem de Processamento

Complexidade de Inserção/Remoção (típica)

Adequação ao Enunciado

Vetor (A)

Acesso aleatório por índice

Preserva ordem de inserção

Inserção/remoção no início: O(n)

❌ Ineficiente para muitas operações sequenciais

Lista (B)

Encadeamento de nós

Preserva ordem de inserção

Inserção no fim e remoção no início: O(1) (se implementada como fila)

❌ Não é a estrutura específica mais adequada

Fila (C)

FIFO (First In, First Out)

Exatamente a ordem de chegada

Inserção (enqueue) e remoção (dequeue): O(1)

Gabarito

Pilha (D)

LIFO (Last In, First Out)

Inverte a ordem de chegada

Inserção (push) e remoção (pop): O(1)

❌ Inverte a ordem, contrariando o requisito

Árvore (E)

Hierarquia de nós (pai-filho)

Depende do percurso (in-ordem, pré-ordem, etc.)

Inserção/remoção: O(log n) (em árvores balanceadas)

❌ Estrutura não linear, não adequada para processamento sequencial simples

  1. 1Fila (FIFO)
  2. 2Pilha (LIFO)
  3. 3Lista encadeada
  4. 4Vetor (array)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O vetor (array) permite acesso aleatório rápido, mas inserir ou remover elementos no início (ou no meio) exige deslocamento de todos os elementos seguintes, operação O(n). Embora preserve a ordem, não é a escolha mais eficiente para processamento estritamente sequencial com muitas operações de inserção/remoção.

Alternativa B — ❌ Incorreta

Uma lista encadeada pode simular uma fila (inserir no fim, remover do início), mas a pergunta pede a estrutura específica mais adequada. A fila é uma abstração que já encapsula exatamente as operações desejadas (enqueue/dequeue), sendo mais direta e semanticamente correta para o cenário de processamento em ordem de chegada.

Alternativa C — ✅ Correta ⟵ GABARITO

A fila segue o princípio FIFO: o primeiro elemento inserido é o primeiro a ser processado. Isso atende perfeitamente à condição de que "a ordem em que esses dados são processados é importante para o resultado final". Além disso, as operações básicas (inserir no final, remover do início) têm complexidade O(1) em implementações com lista ligada ou vetor circular, sendo eficientes para grandes volumes.

Alternativa D — ❌ Incorreta

A pilha opera em LIFO (Last In, First Out), ou seja, o último elemento inserido é o primeiro a sair. Isso inverte a ordem de chegada, contrariando o requisito do enunciado. Seria adequada, por exemplo, para um algoritmo que precisa desfazer operações (undo) ou avaliar expressões, mas não para processar na ordem original.

Alternativa E — ❌ Incorreta

Árvores (binárias, AVL, etc.) são estruturas hierárquicas, não lineares. Embora possam armazenar dados ordenados, a ordem de inserção não é naturalmente a ordem de processamento. Uma árvore binária de busca, por exemplo, organiza os dados por valor, não por tempo de chegada. Não atende ao requisito de processar na ordem de chegada.

PEGA ESSA DICA!

Na hora da prova, lembre-se: se o problema exige processar dados na ordem em que chegam → fila. Se exige o inverso (último que chega é o primeiro a ser processado) → pilha. Essa distinção é clássica e muito cobrada.

Gabarito: letra C (Fila).

Link permanente: /questoes/qq900108