Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — UFSCAR 2023
- Código
- qg046202
- Banca
- UFSCAR
- Órgão
- UFSCAR
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação
- AIII e IV
- BI e II
- CII e IV
- DI e IV
- EII e III
GabaritoE — II e III
Gabarito: letra E (afirmativas II e III). A questão testa o conhecimento sobre as estruturas de dados disponíveis em Java, seus comportamentos e conceitos fundamentais. A afirmativa I está incorreta, pois Java não possui classes nativas para matrizes (apenas arrays); a IV está incorreta porque filas com prioridade (priority queue) não seguem FIFO.
Afirmativa | Status | Justificativa |
|---|---|---|
I | ❌ Incorreta | Java não possui classes nativas para matrizes; matrizes são implementadas por arrays bidimensionais ( |
II | ✅ Correta | Listas permitem inserção/remoção em qualquer posição; filas seguem FIFO (inserção no final, remoção no início). |
III | ✅ Correta | Arrays têm tamanho fixo e armazenam dados de um mesmo tipo; arrays que contêm outros arrays são chamados de arrays multidimensionais. |
IV | ❌ Incorreta | Filas com prioridade (PriorityQueue) não seguem FIFO; o elemento de maior prioridade é removido primeiro, independentemente da ordem de chegada. |
Java possui classes nativas para listas (ArrayList, LinkedList), pilhas (Stack, Deque) e filas (LinkedList, ArrayDeque), mas não possui uma classe nativa específica para matrizes. Matrizes são implementadas por arrays bidimensionais (int[][]), que são construções da linguagem, não classes. A afirmação de que existem "classes nativas para implementação de matrizes" é enganosa.
Listas e filas são estruturas lineares. A diferença está no protocolo de inserção/remoção: listas permitem adicionar ou remover elementos em qualquer posição; filas seguem o protocolo FIFO (First-In, First-Out), onde a inserção ocorre ao final e a remoção no início.
Java oferece o tipo array ([]), que armazena elementos de um mesmo tipo e tem tamanho fixo definido na criação. Diferentemente das listas (como ArrayList), que podem crescer dinamicamente. Um array que contém outros arrays é chamado de array multidimensional (ex.: int[][]).
Filas tradicionais (Queue) implementam FIFO. Porém, quando há prioridades diferentes entre os elementos, utiliza-se uma fila de prioridade (PriorityQueue), que não mantém a ordem FIFO: o elemento de maior prioridade (menor valor, conforme o comparador) é removido primeiro, independentemente da ordem de chegada. Portanto, o protocolo FIFO não é mantido em filas com prioridades.
Conclusão: Apenas as afirmativas II e III estão corretas, o que corresponde à alternativa E.
Gabarito: letra E
Link permanente: /questoes/qg046202