Escolar Documentos
Profissional Documentos
Cultura Documentos
ED ListaEncadeada PDF
ED ListaEncadeada PDF
Listas encadeadas
Definio
Lista linear uma sequncia de itens L = [x1, x2, ..., xn], n 0, cujas propriedades estruturais
dependem apenas da posio relativa de seus itens. Se n = 0, dizemos que a lista L vazia; do
contrrio, valem as seguintes propriedades:
x1
o primeiro item de L;
xn
o ltimo item de L;
xi
precedido pelo item xi-1 e seguido pelo item xi+1 em L, para 1 < i < n.
Ordenar os itens em L.
Estruturas de Dados
Listas encadeadas
criados na memria sob demanda, ou seja, medida que forem necessrios, por meio de
mecanismos de alocao dinmica de memria.
O programa a seguir ilustra a implementao de uma lista linear de nmeros inteiros
representada por encadeamento em linguagem C.
#include <stdio.h>
struct regLista
{
int valor;
struct regLista *prox;
};
int main()
{
int numero;
struct regLista *inicio, *aux, *ant;
/* inicializando a varivel inicio com um endereco vazio */
inicio = NULL;
while(1)
{
printf(Informe o numero:\n);
scanf(%d, &numero);
if( numero < 0 )
break;
/* criando uma varivel struct regLista dinamicamente */
aux = (struct regLista *) malloc( sizeof(struct regLista) );
/* preenchendo os campos da varivel criada dinamicamente */
aux->valor = numero;
aux->prox = NULL;
if( inicio == NULL )
inicio = aux;
else
ant->prox = aux;
ant = aux;
}
/* imprimindo os valores da lista */
printf(\n\n\nConteudo da lista:\n);
aux = inicio;
while ( aux != NULL )
{
printf(%d\n, aux->valor);
aux = aux->prox;
}
return 0;
}
Estruturas de Dados
Listas encadeadas
Esquematicamente podemos representar o estado das variveis do programa anterior da forma
apresentada a seguir.
No incio do programa:
inicio
numero
aux
ant
Aps a digitao dos valores 5, 10, 2, 3 e -1 por parte do usurio, na sada do looping de entrada
de dados, o estado da memria seria:
numero
inicio
ant
aux
-1
valor
5
prox
valor
10
prox
valor
2
prox
valor
3
prox
/