ED T07
Portanto, existe a preocupação de encontrar um mecanismo que faça a alocação de memória somente no momento realmente necessário para armazenar alguma informação, e que exista também um processo de liberação dessa área de memória quando não se precisa mais dessa informação, tornando possível seu uso para a realização do armazenamento de outras informações. Esse mecanismo pode estar disponível por meio do uso das listas ligadas.
Com o uso de listas ligadas não é necessário usar áreas de memória contígua, as listas ligadas utilizam a chamada alocação encadeada, que pressupõe o uso de nós. Cada nó contém duas partes distintas, chamadas de campos; o primeiro campo contém a informação propriamente dita, e o segundo campo contém o endereço do próximo nó.
Se soubermos o endereço do primeiro nó, o segundo é atingido utilizando o endereço que estará no primeiro nó, e assim sucessivamente até chegarmos no último nó, quando o endereço será nulo. O endereço do primeiro nó é armazenado em uma variável externa sob forma de um ponteiro.
Uma lista ligada sem nós é uma lista vazia ou nula. Neste caso, o ponteiro externo que aponta para o início da lista ligada é de valor nulo.
Lista Linearmente Encadeada
campo que mantém o tipo de elemento (ou dado) da lista.
campo que contém o endereço de memória do próximo elemento na lista, um ponteiro que aponta para o próximo elemento da lista.
Alocação Dinâmica de Memória
É o meio pelo qual um programa pode obter memória durante seu tempo de execução. A área de alocação dinâmica consiste em toda memória disponível que não foi usada para outro propósito. Esta área é comumente referida como heap. Em outras palavras, o heap é o resto da memória.
Em C++, alocação dinâmica de memória é feita através dos comandos new e delete. O operador new retorna um ponteiro para a área da memória