Estruturas de dados com operações associadas que definem um...

Próximas questões
Com base no mesmo assunto
Q2469933 Algoritmos e Estrutura de Dados
Estruturas de dados com operações associadas que definem um certo comportamento são recursos úteis na programação orientada a objetos pois proporcionam simplificação do código e reuso. Considere os trechos de código em Python a seguir, que definem dois tipos abstratos de dados.
Imagem associada para resolução da questão

As classes EstruturaDados1 e EstruturaDados2 representam, respectivamente:
Alternativas

Comentários

Veja os comentários dos nossos alunos

Para mim gabarito errado. Opção correta a) Pilha e Fila.

Função "desfaz" remove o último elementro inserido. Caracteristica LIFO.

Função "recolhe" remove o primeiro elemento inserido. Caracterista FIFO.

Alternativa A: Pilha e Fila.

Explicação:

EstruturaDados1:

   A classe EstruturaDados1 possui métodos que implementam o comportamento de uma pilha (stack).

   No método agrega, o elemento é adicionado ao final da lista self.dados, que corresponde à operação de push em uma pilha.

   No método desfaz, o elemento é removido do final da lista self.dados, que corresponde à operação de pop em uma pilha. A remoção é feita usando self.dados.pop(-1), que remove o último elemento da lista.

EstruturaDados2:

   A classe EstruturaDados2 possui métodos que implementam o comportamento de uma fila (queue).

   No método anexa, o elemento é adicionado ao final da lista self.dados, que corresponde à operação de enqueue em uma fila.

   No método recolhe, o elemento é removido do início da lista self.dados, que corresponde à operação de dequeue em uma fila. A remoção é feita usando self.dados.pop(0), que remove o primeiro elemento da lista.

#Pilha - veja que o ultimo elemento é o primeiro a ser retirado

fruits = ['apple', 'banana', 'cherry']

fruits.append('mango')

fruits.pop(-1)

print(fruits)

#Fila - veja que o primero elemento é o primeiro a ser retirado

fruits = ['apple', 'banana', 'cherry']

fruits.append('mango')

fruits.pop(0)

print(fruits)

Na EstruturaDados1, o último elemento que entra é o primeiro que sai.

dados = ['a', 'b', 'c']

dados.append('e')

print(dados)

dados.pop(-1)

print(dados)

OUTPUT:

['a', 'b', 'c', 'e']

['a', 'b', 'c']

Em EstruturaDados2, o primeiro que entra é o primeiro que sai:

dados = ['a', 'b', 'c']

dados.append('e')

print(dados)

dados.pop(0)

print(dados)

OUTPUT:

['a', 'b', 'c', 'e']

['b', 'c', 'e']

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo