Você está aqui: Python ::: Estruturas de Dados ::: Lista Ligada Simples |
Como retornar a quantidade de nós de uma lista singularmente encadeada em PythonQuantidade de visualizações: 796 vezes |
Nesta dica nós vamos ver como obter a quantidade de nós presentes em uma lista encadeada simples na linguagem Python. Para isso vamos criar um método get_tamanho() que poderá ser chamado a qualquer momento e que varrerá a lista de forma a atualizar o contador de nós. Para facilitar o seu entendimento eu optei por repetir códigos já vistos em outras dicas. Assim, vamos começar então com o código para a classe No da lista singularmente ligada (que salvei em um arquivo no_lista_singularmente_ligada.py): # classe No para uma lista singularmente encadeada ou # ligada - Singly Linked List class No: # construtor da classe No def __init__(self, info, proximo): self.info = info self.proximo = proximo # método que permite definir o conteúdo do nó def set_info(self, info): self.info = info # método que permite obter a informação de um nó def get_info(self): return self.info # método que permite definir o campo próximo deste nó def set_proximo(self, proximo): self.proximo = proximo # método que permite obter o campo próximo deste nó def get_proximo(self): return self.proximo # retorna True se este nó apontar para outro nó def possui_proximo(self): return self.proximo != None Veja que o código para a classe Nó não possui muitas firulas. Temos apenas um campo info, que guardará o valor do nó, e um campo próximo, que aponta para o próximo nó da lista, ou null, se este for o único nó ou o último nó da lista ligada. Veja agora o código para a classe ListaLigadaSimples (lista_ligada_simples.py), com os métodos get_tamanho(), inserir_inicio() e exibir(): # importa a classe No from no_lista_singularmente_ligada import No # classe ListaLigadaSimples class ListaLigadaSimples: # construtor da classe def __init__(self): self.inicio = None # nó inicial da lista # método que permite retornar o tamanho da lista ligada, ou # seja, a quantidade de nós na lista encadeada simples def get_tamanho(self): # aponta para o início da lista no_atual = self.inicio # ajusta o contador em 0 contador = 0 # percorre todos os nós da lista ligada while no_atual != None: # incrementa o contador contador = contador + 1 # avança para o próximo nó da lista no_atual = no_atual.get_proximo() # retornamos a quantidade de nós return contador # método que permite inserir um novo nó no início da lista def inserir_inicio(self, info): # cria um novo nó contendo a informação e que # não aponta para nenhum outro nó novo_no = No(info, None) # a lista ainda está vazia? if self.inicio == None: # o novo nó será o início da lista self.inicio = novo_no else: # o novo nó aponta para o início da lista novo_no.set_proximo(self.inicio) # o novo nó passa a ser o início da lista self.inicio = novo_no # método que permite exibir todos os nós da lista # ligada simples (lista singularmente encadeada) def exibir(self): # aponta para o início da lista no_atual = self.inicio # enquanto o nó não for nulo while no_atual != None: # exibe o conteúdo do nó atual print(no_atual.get_info()) # pula para o próximo nó no_atual = no_atual.get_proximo() E agora o código main() que insere alguns valores no início da nossa lista singularmente encadeada e testa o método get_tamanho(): # importa a classe ListaLigadaSimples from lista_singularmente_ligada import ListaLigadaSimples # método principal def main(): # cria uma nova lista encadeada simples lista = ListaLigadaSimples() # insere vários valores, sempre no início da lista print("Quantidade de nós na lista: " + str(lista.get_tamanho())) print("Inserir no início da lista") lista.inserir_inicio(30) print("Inserir no início da lista") lista.inserir_inicio(71) print("Quantidade de nós na lista: " + str(lista.get_tamanho())) print("Inserir no início da lista") lista.inserir_inicio(59) print("Inserir no início da lista") lista.inserir_inicio(13) print("Quantidade de nós na lista: " + str(lista.get_tamanho())) # exibe todo o conteúdo da lista ligada print("\nTodos os nós da lista:") lista.exibir() if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: c:\estudos_python>python estudos.py Quantidade de nós na lista: 0 Inserir no início da lista Inserir no início da lista Quantidade de nós na lista: 2 Inserir no início da lista Inserir no início da lista Quantidade de nós na lista: 4 Todos os nós da lista: 13 59 71 30 |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |