- Fundamentos de ProgramaçãoEstruturas de DadosEstrutura de Dados: ListaLista Encadeada
- LinguagensPython
Considere a classe No, implementada em Python, que será a base de formação de uma Lista Simplesmente Encadeada:
class No:
def __init__(self, dado):
self.dado = dado
self.proximo = None
Considere ainda o trecho de código em Python que manipula a Lista Simplesmente Encadeada e que está declarado dentro da classe ListaEncadeada:
class ListaEncadeada:
def __init__(self):
self.cabeca = None
def metodoX(self):
if not self.cabeca:
return None
Y = self.cabeca
atual = self.cabeca
anterior = None
anterior_Y = None
while atual:
if atual.dado > Y.dado:
Y = atual
anterior_Y = anterior
anterior = atual
atual = atual.proximo
if anterior_Y is None:
self.cabeca = Y.proximo
else:
anterior_Y.proximo = Y.proximo
return Y.dado
def metodoZ(L):
K = ListaEncadeada()
while L.cabeca:
W = L.metodoX()
K.inserir_fim(W)
return K
A classe ListaEncadeada contém outros métodos que permitem a sua completa manipulação, como inserir elemento no início, inserir elemento no final, exibir conteúdo da lista e remover elementos. Assinale a alternativa que apresenta o conteúdo retornado pelo metodoZ, quando for enviado como parâmetro a seguinte Lista Ligada:
[15, 28, 2, 10, 50, 14, 77]