Você está na página 1de 16

Estruturas de Dados

Prof. Perini
Sistemas de Informação
Ciência da Computação
Disciplina: Estrutura de Dados
- Lista Encadeada –
- Alocação Dinâmica –
Profº José Carlos Perini

Fontes:
Apostila de Estruturas de Dados
Adaptado dos slides do Prof° Fábio L. R. Pelissoni
TAD: Lista Encadeada
Alocação Dinâmica de Memória:

• Estrutura dinâmica, criada vazia;

• Os elementos são chamados de “nós”;

• Estrutura homogênea: os nós, normalmente, são todos do


mesmo tipo;

• Tamanho da lista é dado pelo número de nós da lista;

• Condiciona o crescimento da lista à disponibilidade de


memória.
3
TAD: Lista Encadeada
Alocação Dinâmica de Memória:

• Cada nó é alocado dinamicamente (através do comando


malloc);

• Os nós não estão armazenados, necessariamente, em


sequência física na memória;

• Cada nó guarda, além da informação (info), o endereço de


memória onde se encontra o próximo nó da lista (prox);

4
TAD: Lista Encadeada
Alocação Dinâmica de Memória:

• O acesso aos elementos da lista ocorre através de um


ponteiro para o início da lista, ou seja, essa variável do
tipo ponteiro deve guardar o endereço de memória do
primeiro nó da lista;

• O acesso aos demais elementos ocorre através da


indicação de quem é o próximo na sequência;

• O último nó da lista aponta para um endereço inválido,


chamado NULL;

5
TAD: Lista Encadeada
Alocação Dinâmica de Memória:

• info pode ser de qualquer tipo conhecido (int, float, char,


struct aluno, struct pessoa, etc.) e varia de uma aplicação
para outra;

• prox é um campo do tipo ponteiro para nó, pois deve


armazenar o endereço do próximo nó da lista, se existir
esse próximo, caso contrário deve guardar uma
informação que indique o final da lista (NULL).

6
TAD: Lista Encadeada
Tipos de Listas Encadeadas:

• Singularmente Encadeada: contém um elo com o próximo


item de dado (usa apenas um ponteiro);

• Duplamente Encadeada: contém elos tanto com o


elemento anterior quanto com o próximo elemento da lista
(uso de duas variáveis do tipo ponteiro).

7
TAD: Lista Encadeada
Representação Gráfica de uma Lista Encadeada:

L Dado Dado Dado Dado


(Início da lista)
Link Link Link Link

NULL
Lista Singularmente Encadeada (fim da lista)

8
TAD: Lista Encadeada
Representação Gráfica de uma Lista Encadeada:

L Dado Dado Dado


(Início da lista) Link Link Link Link Link Link

NULL
(fim da lista)
Lista Duplamente Encadeada

Lista Vazia

NULL

9
Lista Duplamente Ligada – O nó e o
tipo lista

10
Lista Duplamente Ligada – as
operações

11
Lista Duplamente Ligada – Consulta
geral da lista

12
Lista Duplamente Ligada – Remoção de
um elemento de uma posição da lista

13
Lista Duplamente Ligada – Remoção de
um elemento de uma posição da lista

14
Lista Duplamente Ligada – Testando
Perguntas

16

Você também pode gostar