Questão 1720600

Tecnologia da Informação · 2022

Questão

ID 1720600

Disciplina: Tecnologia da Informação

Assunto: Pilhas

Ano: 2022 Banca: UFES - Universidade Federal do Espírito Santo Órgão: Universidade Federal do Espírito Santo


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

Alternativas da questão 1720600
Pular para o conteúdo principal