A linguagem de programação Python é uma linguagem de código aberto com várias implementações out-of-the-box que a torna única e mais fácil de aprender. Apesar não suporta o conceito de uma lista vinculada, há uma maneira de contornar isso por meio de uma implementação diferente para obter uma lista vinculada. Neste artigo, aprenderemos como podemos fazer uma lista vinculada em Python. A seguir estão os tópicos abordados neste blog:
Vamos começar!!
O que é lista vinculada?
A lista de links é uma sequência de nós com um tipo de dados semelhante, cada nó contém um objeto de dados e um ponteiro para o próximo nó.
Uma lista vinculada é uma estrutura de dados linear com a coleção de vários nós. Onde eCada elemento armazena seus próprios dados e um ponteiro para a localização do próximo elemento. O último link em uma lista vinculada aponta para nulo, indicando o fim da cadeia. Um elemento em uma lista vinculada é chamado de nó . O primeiro nó é chamado de cabeça .O último nó é chamadoa rabo .
A biblioteca python padrão não possui uma lista vinculada. Podemos implementar o conceito de estrutura de dados de lista de links usando o conceito de nós.
def __init __ (self) python
Agora que aprendemos sobre o que é o Linked. Então, vamos prosseguir para a implementação de uma lista vinculada.
Implementando uma lista vinculada
Para criar uma lista vinculada, criamos um objeto de nó e criamos outra classe para usar este objeto de nó.
Código para criar a classe Node.
O programa acima cria uma lista vinculada com três elementos de dados.
class Node (object): # Construtor para inicializar variáveis de classe def __init __ (self, data = None, next_node = None): self.data = data self.next_node = next_node #get data def get_data (self): return self.data # obter o próximo valor def get_next (self): retornar self.next_node # definir os próximos dados def set_next (self, new_next): self.next_node = new_next
A implementação da lista de links consiste na seguinte funcionalidade em uma lista de links
1. Inserir : Este método irá inserir um novo nó em uma lista vinculada.
2 Tamanho : Este método retornará o tamanho da lista vinculada.
3 - Pesquisa : Este método retornará um nó contendo os dados, caso contrário, gerará um erro
Quatro. Excluir : Este método excluirá um nó que contém os dados, caso contrário, gerará um erro
Vamos ver a lista de métodos vinculados
Método de inicialização em uma lista vinculada
classe LinkedList (objeto): def __init __ (self, head = None): self.head = head
Método de inicialização é usado para a inicialização de um classe variável se a lista não tiver nós, ela será definida como nenhum.
Inserir:
def insert (self, data): new_node = Node (data) new_node.set_next (self.head) self.head = new_node
Este método de inserção obtém dados, inicializa um novo nó com os dados fornecidos e os adiciona à lista. Tecnicamente, você pode inserir um nó em qualquer lugar da lista, mas a maneira mais simples de fazer isso é colocá-lo no topo da lista e apontar o novo nó para o cabeçalho antigo (meio que empurrando os outros nós na linha).
Tamanho
# Retorna o número total de nós na lista def size (self): current = self.head count = 0 enquanto current: count + = 1 current = current.get_next () return count
O método do tamanho é muito simples, ele basicamente conta os nós até não conseguir encontrar mais e retorna quantos nós ele encontrou. O método começa no nó principal, percorre a linha de nós até chegar ao fim (a corrente será Nenhum quando chegar ao fim) enquanto mantém o controle de quantos nós viu.
Pesquisa
# Retorna o nó na lista com nodeData, erro ocorreu se o nó não estiver presente def search (self, nodeData): current = self.head isPresent = False enquanto current e isPresent for False: if current.get_data () == nodeData: isPresent = True else: current = current.get_next () se current for None: raise ValueError ('Dados não presentes na lista') return current
A pesquisa é realmente muito semelhante ao tamanho, mas em vez de percorrer toda a lista de nós, ela verifica a cada parada para ver se o nó atual possui os dados solicitados. Nesse caso, retorna o nó que contém esses dados. Se o método percorrer toda a lista, mas ainda não tiver encontrado os dados, ele gerará um erro de valor e notificará o usuário de que os dados não estão na lista.
Excluir
# Remover o nó da lista vinculada retorna erro se o nó não estiver presente def delete (self, nodeData): current = self.head previous = None isPresent = False while current e isPresent for False: if current.get_data () == nodeData: isPresent = Verdadeiro else: anterior = atual atual = atual.get_next () se atual for Nenhum: aumentar ValueError ('Dados não presentes na lista') se anterior for Nenhum: self.head = current.get_next () else: previous.set_next ( current.get_next ())
O método delete percorre a lista da mesma forma que a pesquisa, mas além de manter o controle do nó atual, o método delete também lembra o último nó visitado. Quando a exclusão finalmente chega ao nó que deseja excluir. Ele simplesmente remove esse nó da cadeia, “saltando-o”.
Com isso quero dizer que quando o método de exclusão atinge o nó que deseja excluir, ele olha para o último nó que visitou (o nó 'anterior') e redefine o ponteiro do nó anterior. Em vez de apontar para o nó que logo será excluído.
Ele apontará para o próximo nó da linha. Uma vez que nenhum nó está apontando para o nó ruim que está sendo excluído, ele é efetivamente removido da lista!
Isso nos leva ao final deste artigo, onde aprendemos como podemos fazer uma lista vinculada em python com uma implementação semelhante, embora o python realmente não suporte o conceito de uma lista vinculada. Espero que você tenha esclarecido tudo o que foi compartilhado com você neste tutorial.
Se você achou este artigo em 'Lista vinculada em Python' relevante, verifique o Uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo.
Estamos aqui para ajudá-lo em cada etapa de sua jornada e criar um currículo projetado para estudantes e profissionais que desejam ser um . O curso foi desenvolvido para dar a você uma vantagem inicial na programação Python e treiná-lo para os conceitos básicos e avançados do Python, juntamente com vários gostar
Se você encontrar alguma dúvida, fique à vontade para fazer todas as suas perguntas na seção de comentários da “Lista vinculada em Python” e nossa equipe terá prazer em responder.