Você está na página 1de 3

Bom voc provavelmente j deve saber o que uma lista encadeada, se no sabe, Uma lista encadeada (= linked list

t = lista ligada) uma sequncia de clulas; cada clula contm um objeto de algum tipo e o endereo da clula seguinte. Supomos que os objetos armazenados nas clulas so do tipo int. A estrutura de cada clula de uma tal lista pode ser definida assim:

ou

Se c uma clula ento c.conteudo o contedo 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 ltima clula da lista ento p->prox vale NULL.

Bom, vamos ento desenvolver as principais funes que precisamos para uma lista encadeada. A funo cria s serve mesmo pra inicializar a lista com um elemento mesmo. Agiliza o trabalho de alocar memria, definir o dado e definir o prximo elemento para si mesmo. A funo em si bem simples:

A funo nil, o ultimo campo de uma lista deve apontar para null, pois null usado para indicar final de uma lista.

Lista com cabea. O contedo da primeira clula irrelevante: ela serve apenas para marcar o incio da lista. A primeira clula a cabea (= head cell = dummy cell) da lista. A primeira clula est sempre no mesmo lugar na memria, mesmo que a lista fique vazia.

A funo corpo:

Com essas quatro funes j podemos criar uma lista muito simples. Vamos agora ento criar a funo main:

A funo cria pede 2 parmetros o contedo que denominamos c e um ponteiro denominado p, podemos perceber que nossa lista possui 3 valores e que o ultimo bloco aponta para null. No pratico ficarmos chamando uma funo enorme, o exemplo acima simples possui apenas 3 elementos, mas imagina uma lista com 30 elementos voc ficaria escrevendo cabea(corpo(corpo(corpo...(corpo(p))...))); s para visualizar todos os elementos ??? lgico que no, ento criaremos agora uma funo para imprimir na tela todos os elementos de uma lista:

Vimos as estruturas bsicas de uma lista agora vamos montar nosso programa por completo:

Você também pode gostar