Implementando uma lista encadeada em Python
Implementação de Listas Encadeadas em Python
Neste tutorial, você aprenderá a implementar listas encadeadas em Python. As listas encadeadas são uma coleção de elementos ordenados, onde cada elemento é chamado de “nó” e contém um valor e uma referência ao próximo nó da lista.
Entendendo as Listas Encadeadas
Antes de explorar a implementação das listas encadeadas, é importante compreender a estrutura dessas listas. Cada nó de uma lista encadeada possui dois campos:
- Dado: contém o valor a ser armazenado no nó.
- Próximo: contém uma referência ao próximo nó da lista.
Aqui está uma representação visual de um nó típico:
Node:
A lista encadeada é formada por uma sequência de nós. O primeiro nó é conhecido como “cabeça” da lista e é usado como ponto de partida para qualquer iteração pela lista. O último nó tem sua referência “próximo” apontando para None
, indicando o final da lista.
Aqui está uma representação visual da estrutura de uma lista encadeada:
Linked List:
Agora que você entende a estrutura das listas encadeadas, vamos analisar algumas aplicações práticas.
Aplicações Práticas
As listas encadeadas são utilizadas em diversas áreas do mundo real. Elas podem ser usadas para implementar estruturas de dados como filas e pilhas, além de serem úteis em algoritmos de busca e ordenação.
Implementando sua Própria Lista Encadeada
Agora que você já conhece a estrutura e as aplicações das listas encadeadas, vamos aprender a implementar sua própria lista encadeada em Python.
Passo 1: Criando uma Lista Encadeada
Primeiro, vamos criar a classe Node
para representar um nó da lista encadeada. Cada nó possui um valor e uma referência ao próximo nó da lista.
Em seguida, podemos criar a classe LinkedList
que representa a lista encadeada em si. A lista encadeada possui um único atributo, que é o nó “cabeça”.
Agora, podemos criar uma instância da LinkedList
. Inicialmente, a lista estará vazia.
Passo 2: Percorrendo uma Lista Encadeada
Agora que temos uma lista encadeada vazia, vamos aprender a percorrer os elementos da lista.
Neste exemplo, utilizamos uma variável chamada current
para percorrer os nós da lista começando pelo nó “cabeça”. Enquanto current
não for None
, ou seja, enquanto não chegarmos ao final da lista, imprimimos o valor do nó atual e avançamos para o próximo nó.
Passo 3: Inserindo um Novo Nó na Lista
Agora, vamos aprender a inserir um novo nó em nossa lista encadeada. Para isso, vamos criar um método chamado insert
na classe LinkedList
.
Neste exemplo, criamos um novo nó com o valor fornecido e, em seguida, verificamos se a lista encadeada está vazia. Se estiver vazia, o novo nó se torna o nó “cabeça”. Caso contrário, percorremos a lista até o último nó e adicionamos o novo nó como próximo do último nó.
Agora, podemos inserir nós em nossa lista encadeada.
Após inserir os nós, podemos percorrer a lista e imprimir os valores.
Passo 4: Removendo um Nó da Lista
Por fim, vamos aprender a remover um nó da lista encadeada. Para remover um nó, precisamos percorrer a lista até encontrar o nó que desejamos remover e ajustar as referências para “pular” o nó.
Neste exemplo, percorremos a lista até encontrar o nó com o valor fornecido. Se encontrarmos o nó, ajustamos as referências para remover o nó. Caso contrário, percorremos a próxima iteração da lista até encontrar o nó ou chegar ao final da lista.
Agora, podemos remover um nó da lista encadeada.
Após remover o nó, podemos percorrer a lista novamente para verificar se o nó foi removido corretamente.
Conclusão
As listas encadeadas são uma estrutura de dados poderosa e útil em diversas aplicações. Neste tutorial, você aprendeu a implementar sua própria lista encadeada em Python, desde a criação de nós até a inserção e remoção de elementos na lista. Agora você tem o conhecimento necessário para utilizar listas encadeadas em seus projetos. Experimente criar diferentes implementações e explorar as diversas possibilidades que as listas encadeadas oferecem!