Listas duplamente vinculadas
Uma lista encadeada ou lista ligada é uma estrutura de dados linear e dinâmica. Ela é composta por vários elementos que estão interligados através de ponteiros, ou seja, cada elemento da lista possui um ponteiro que aponta para o endereço de memória da próxima célula. Desse modo, os elementos da lista não precisam estar em posições contíguas da memória. Isso faz com que a estrutura se torne dinâmica, pois a qualquer momento, é possível incluir uma novo elemento na lista, bastando ajustar os ponteiros das células já existentes, de modo que a nova célula seja inserida na estrutura com êxito, na posição desejada pelo programador.
Você pode declarar listas usando a seguinte sintaxe:
O compilador irá, internamente, converter as declarações acima, no código abaixo:
Na Biblioteca padrão existem rotinas diversas para trabalhar com listas.
Exemplos:
Exemplo de utilização:
Acrescente o verso para os versos.
Insira o verso após os outros versos.
Remova o verso desde os versos.
A Biblioteca padrão também aceita o comando
"Atribua a
quantidade de elementos
de uma lista para uma contagem."
As listas são alocadas dinamicamente então é necessário efetuar a alocação e desalocação de memória das listas manualmente, de forma explícita.
Exemplos de alocação:
Crie a Bíblia.
Aloque memória para a Bíblia.
Exemplos de desalocação:
Destrua a Bíblia.
Desaloque a Bíblia.
Perceba que ao destruir uma lista, todos os seus elementos são destruídos juntamente com ela.
Para evitar este comportamento, utilize a palavra-chave "(referência)" após o nome do elemento. Isto indicará ao compilador que o campo trata-se de um ponteiro apenas.
Exemplos:
Atualizado