Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lista Duplamente
Encadeada
Relembrando listas
encadeadas
Um
informao armazenada
Caso
Relembrando listas
encadeadas
typedef struct tp_no {
int cod;
float preco;
int quant;
struct tp_no *prox;
} TPLISTA;
TPLISTA *lista;
...
lista->cod=1;
lista->preco=10.5;
lista->quant=20;
Listas Circulares
O ltimo elemento tem como prximo o primeiro
elemento da lista, formando um ciclo
til quando:
lista
Listagem
Lista Circular
Insero?
Remoo?
6
Remoo
de um elemento no precisa
guardar anterior
Remoo
de um elemento cujo
ponteiro informado no precisar
percorrer a fila toda
Um
7
prox
lista
a
8
Listas Duplamente
Encadeada
typedef int tpitem;
typedef struct tp_no {
tpitem info;
struct tp_no *ant;
struct tp_no *prox;
} tplista;
tplista *lista;
Busca e Listagem
Busca
e Listagem:
10
Insero no Incio
O novo elemento encadeado no incio da
lista
O seu prximo passa a ser o antigo primeiro
elemento e o seu anterior NULL
11
Insero
12
Remoo
A
13
Remoo
Sendo
Caso
14
se p for o primeiro, no se pode referenciar p>ant, pois ele NULL; o mesmo acontece para
p->prox quando o ltimo
alm disso, se for o primeiro, preciso
atualizar o ponteiro da lista
Remoo
p
lista
lista
a
15
a
lista
17