Fila (Queue) – FIFO
Gabarito: letra B. A fila (Queue) opera no modelo FIFO (First-In, First-Out), que exatamente garante que o primeiro documento enviado seja o primeiro a ser impresso. As demais estruturas não respeitam essa ordem de forma inerente, sendo necessário controle adicional ou invertendo a sequência.
Alternativa A – ❌ Incorreta
A pilha (Stack) segue o modelo LIFO (Last-In, First-Out), onde o último documento inserido seria o primeiro a sair. Isso inverteria a ordem de impressão, tornando-a inadequada para o requisito de fila de impressão.
Alternativa B – ✅ Correta ⟵ GABARITO
A fila é a estrutura de dados clássica para cenários onde a ordem de chegada deve ser preservada. Implementa FIFO sem necessidade de lógica extra, sendo a escolha natural para gerenciar uma fila de impressão.
Alternativa C – ❌ Incorreta
Um vetor (array) permite acesso direto a qualquer elemento por índice, mas não impõe automaticamente a ordenação FIFO. Para simular uma fila com vetor, seria necessário manter controle de ponteiros de início e fim, o que é menos eficiente e mais propenso a erros.
Alternativa D – ❌ Incorreta
Uma árvore binária é útil para organizar dados hierarquicamente ou por prioridade (ex.: árvore de busca binária, heap de prioridade). Não possui comportamento FIFO intrínseco, sendo inadequada para uma fila linear simples.
Alternativa E – ❌ Incorreta
Uma lista genérica (lista ligada, lista duplamente ligada) permite inserção e remoção em qualquer posição, mas por si só não garante FIFO. Seria necessário implementar uma política restritiva (inserir no final, remover do início) para simular uma fila, o que a torna uma escolha indireta e menos intuitiva.
Conclusão: A fila (Queue) é a estrutura de dados mais adequada para o problema, pois implementa nativamente o comportamento FIFO desejado.