Questões de Tecnologia da Informação · CPCC UFES

Tecnologia da InformaçãoEstruturas de dados lineares e tabelas hashCPCC UFES 2022

UFES

Questão de Tecnologia da Informação

Considere o seguinte código Java, escrito em um arquivo chamado TestePilha.java, que traz um rascunho (código incompleto) de duas implementações para uma estrutura de dados do tipo pilha: import java.util.ArrayList; import java.util.List; class PilhaA<T> extends ArrayList<T> { public void empilhar(T elem) { // TODO: implementar. } public T desempilhar() { // TODO: implementar. return null; } } class PilhaB<T> { private List<T> elems = new ArrayList<>(); public void empilhar(T elem) { // TODO: implementar. } public T desempilhar() { // TODO: implementar. return null; } } Considerando-se o código acima, analise as afirmativas a seguir: I. Ambas as implementações baseiam-se na classe ArrayList, que implementa uma estrutura de dados do tipo lista e pertence à API do Java, como parte do pacote java.util. II. Os métodos empilhar() e desempilhar() devem ser implementados de modo a, respectivamente, inserir um elemento no início da lista e remover um elemento do final da lista, como é característico da pilha. III. A implementação PilhaA reutiliza a classe ArrayList por meio do recurso da herança, enquanto a classe PilhaB o faz por meio de composição. IV. A implementação PilhaA é menos adequada, pois quebra o contrato da estrutura de dados pilha, ao permitir que seja inserido um elemento no meio da pilha por meio do método add(). É CORRETO o que se afirma em

Sua resposta

Mais questões de Estruturas de dados lineares e tabelas hash

Questão de prova oficial, com o gabarito definitivo publicado pela banca. Reproduzida para fins de estudo.