Estruturas de dados: pilhas, filas, listas e árvores
Gabarito: letra D. A alternativa D está correta porque filas (queues) podem ser implementadas tanto em listas encadeadas (dinâmicas) quanto em vetores (estáticos, frequentemente com uso circular). As demais alternativas contêm erros conceituais: listas encadeadas são dinâmicas, pilhas são LIFO, árvores não são FIFO, e pilhas podem ser implementadas também com vetores.
Vejamos cada alternativa detalhadamente.
Alternativa A — ❌ Incorreta
Afirma que listas encadeadas são estruturas estáticas, com número fixo de nós. Na verdade, listas encadeadas são dinâmicas: nós podem ser inseridos ou removidos durante a execução do programa. O erro é confundir estrutura estática (como vetor de tamanho fixo) com estrutura dinâmica (alocação por ponteiros).
Alternativa B — ❌ Incorreta
Define pilhas como FIFO (first-in first-out). O correto é que pilhas seguem o princípio LIFO (last-in first-out): o último elemento inserido é o primeiro a ser removido. FIFO é característico de filas.
Alternativa C — ❌ Incorreta
Classifica árvores como FIFO. Árvores são estruturas hierárquicas, não lineares, e não possuem o comportamento de fila. A confusão é evidente: árvores não obedecem a uma ordem de inserção/remoção como pilhas ou filas.
Alternativa D — ✅ Correta ⟵ GABARITO
Filas podem, de fato, ser implementadas tanto em listas encadeadas (com nós ligados por ponteiros) quanto em vetores (usando lógica circular para aproveitar espaços). Ambas as implementações são comuns em algoritmos.
Alternativa E — ❌ Incorreta
Diz que pilhas só podem ser implementadas em listas encadeadas. Na prática, pilhas podem ser implementadas também em vetores (array stack, com índice de topo). A afirmação é restritiva demais.
Conclusão: A única afirmativa correta é a letra D.