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

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

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

Elas também são chamadas de listas ligadas.

Ver mais em https://pt.stackoverflow.com/q/164085/101.

Ajudei? Era o meu desejo.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).

Obrigado pela indicação.

Uma das melhores analogias que já vi, parabéns pelo post, ficou ótimo. 👏🏻

Agradeço pelo feedback.