Estrutura de dados - Listas
---------------------
Vantagens em relação ao Vetor:
- O vetor permite acesso randômico aos elementos
- O vetor ocupa espaço contiguo na memória
Desvantagens em relação ao Vetor:
- O Vetor precisa ser dimensionado com o número máximo de elementos, enquanto a lista
Vantagens em relação a lista:
- A lista cresce a medida que os elementos são inseridos e é decrementada a medida que os elementos são removidos.
- Sequencia de elementos encadeados
* Cada nó da lista armazena: a informação que se quer guardar
* A lista armazena um ponteiro para o primeiro nó da lista
* O ponteiro do último elemento é NULL um ponteiro para o próximo elemento da lista
Passo a passo para inserir um elemento e manter a lista ordenada:
- Identificar a posição a inserir o novo registro
- Criar o novo nó
- Novo nó deve apontar para o nó posterior
- Nó anterior deve apontar para o novo nó
*** Caso especial para inserir no inicio da lista ***
Implementação recursiva da lista encadeada:
- Possui um nó seguido de uma lista
- Exibir o conteúdo do primeiro nó
- Exibir a sub-lista, dada por nó.proximo, chamado recursivamento dentro da função
private void exibirLista(){
exibirListaRecurssiva(this.prim) }
private void exibirListaRecurssiva(NoLista no){ se (no != null) então escrever(no.info); exibirListaRecurssiva(no.proximo); fim-se }
LISTAS CIRCULARES
---------------------
O último nó da lista tem como “seu próximo” o primeiro nó da lista, formando um ciclo.
Consiste em:
– Percorre todos os nós a partir da referência do nó inicial até alcançar novamente este mesmo nó
– Se a lista é vazia, a referência para o nó inicial é nula
LISTAS DUPLAMENTE ENCADEADAS
---------------------
- Cada nó possui uma referência para o próximo nó e para o nó anterior
- Dado um determinado nó, é possível ter acesso ao seu próximo nó e ao nó imediatamente anterior
- Dada uma referência para o