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: 954 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 |





