Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FUNDATEC 2023
Algoritmos e Estrutura de Dados›Estrutura 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?
AVetor.
BLista.
CFila.
DPilha.
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
1Fila (FIFO)
2Pilha (LIFO)
3Lista encadeada
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.