9/100 Dias Estudando Estruturas de Dados - Introdução a Lista Encadeada ⛓️
Imagine uma busca ao tesouro. Inicialmente, você recebe um cartão que informa que o tesouro está guardado na mesa do quarto
. Ao chegar lá, encontra outro cartão, indicando que o tesouro está dentro do guarda-roupas
. No entanto, dentro do guarda-roupas, há mais um cartão que revela que o tesouro está dentro do fogão na cozinha
. Ao chegar ao fogão, outro cartão indica que o tesouro está debaixo da mesa na sala de jantar
. Enfim, você encontrou o tesouro
.
Mapa do tesouro
Podemos notar que:
- Para alcançarmos o tesouro, necessitamos de um ponto de partida (o cartão).
- O cartão não é parte integrante da sequência.
- Cada ponto é composto pela localização do próprio ponto e de uma indicação para o próximo local.
- O ponto final(o tesouro), não aponta para um próximo ponto.
Isso é um exemplo daquilo que chamamos de lista encadeada
, que se define por um conjunto de elementos individualizados em que cada um referencia o outro como sucessor.
Lista de tarefas
Podemos utilizar listas encadeadas
em nosso cotidiano. Como exercício, crie uma lista de tarefas com qualquer coisa que venha à mente, sem se preocupar com a ordem.
exemplo
# | Item |
---|---|
1 | Dormir |
2 | Estudar backend |
3 | Escovar Dentes |
4 | Post Tabnews |
Esta tabela pode parecer um pouco confusa, pois não há uma ordem aparente.
No entanto, com Listas encadeadas
, mesmo sem uma ordem definida, é possível determinar qual será o próximo valor.
começo: 2
# | Item | Próximo |
---|---|---|
1 | Dormir | Final |
2 | Estudar backend | 4 |
3 | Escovar Dentes | 1 |
4 | Post Tabnews | 3 |
Desta maneira, apenas indicamos qual será a próxima tarefa a ser realizada, sem necessidade de modificar a ordem atual da tabela.
Declaração
Podemos representar nossa lista de tarefas com um vetor de registros
type reg : register
caracter: item;
integer: PROX;
end;
type VET = vector [1...100] of reg;
VET: list;
integer: comeco;
comeco <- 2;
Usaremos a variavel comeco
como referência
ao ponto de partida da lista e o valor 0
ou null
como final.
Extras
Livro que estou usando para estudar estrutura de dados: https://www.amazon.com.br/L%C3%B3gica-Programa%C3%A7%C3%A3o-Constru%C3%A7%C3%A3o-Algoritmos-Estruturas-ebook/dp/B08B451Z5F