Você está na página 1de 8

Listas

Encadeadas
Estruturas de Dados Prof. Weider Pereira Rodrigues

Trata-se de uma representao de uma sequncia de objetos na memria do computador. Cada elemento da sequncia armazenado em uma clula da lista. O primeiro elemento na primeira clula, o segundo na segunda e assim por diante

Estrutura de uma lista encadeada


Uma lista encadeada (linked list = lista ligada) uma sequncia de clulas. Cada clula contm um objeto de algum Lpo e o endereo da clula seguinte. Supondo que as clulas so do Lpo int. A estrutura de cada clula de uma tal lista pode ser denida assim:

Exemplo

conviniente tratar as clulas como um novo Lpo-de-dados e atribuir um nome a esse novo Lpo.
typedef struct cel celula

Uma clula c e um ponteiro p para uma clula podem ser declarados assim:
celula c; celula *p;

Se c uma clula, ento, c.conteudo o conteudo da clula e c.prox o endereo da prxima clula. Se p o endereo de uma clula, ento p->conteudo o contedo da clula e p->prox o endereo da prxima clula. Se p o endereo da l#ma clula da lista, ento:

Exerccios
Implemente uma lista encadeada com 10 clulas inteiras.

PRONTO?

Endereo de uma lista encadeada


O endereo de uma lista encadeada o endereo de sua primeira clula. Se p o endereo de uma lista, convm, as vezes, dizer simplesmente: p uma lista Listas so eminentemente recursivas. Para tornar isso evidente, basta fazer a seguinte observao: se p uma lista, ento vale uma das seguintes alternaLvas:
p == NULL ou p->prox uma lista.