Академический Документы
Профессиональный Документы
Культура Документы
Listas Heterognea
Cada n da lista guarda um tipo diferente de informao; Sua implementao se d utilizando-se em cada n, no mnimo trs campos:
Identificador do tipo de dado armazenado; Ponteiro para a informao; Ponteiro para o prximo elemento da lista;
tringulo
quadrado
crculo
void* ??
#define RET 0 #define TRI 1 #define CIR 2
Implementao
Como cada n da lista pode guardar tipos diferentes de informao ser necessrio que seja implementada uma subrotina para alocar espao e inicializar cada tipo de elemento ...
Elemento* cria_retangulo(float a, float l); Elemento* cria_triangulo(float h, float b); Elemento* cria_circulo(float r);
14
Descritor
9 6 18 5
NULL
N de Elementos
Dois registros?
Implementao
As operaes sobre uma lista com descritor so semelhantes s da lista normal, porm, a cada operao o descritor da lista precisar ser atualizado ...
Descritor* criaLista(); Descritor* insereNoInicio(Descritor* des, int v); Descritor* insereNoFinal(Descritor* des, int v); void imprimeLista(Descritor* des); Elemento* buscaValor(Descritor* des, int v); void liberaLista(Descritor* des); Descritor* retiraElemento(Descritor* des, Elemento* e);
Vantagens
Uma lista com descritor uma excelente alternativa para determinadas aplicaes, onde necessrio por exemplo saber rapidamente o nmero de elementos ou a soma de seus valores ... sem precisar percorrer toda a lista para descobrir essa informao. Dependendo como a lista implementada, nodos especficos podem ser acessados diretamente (o primeiro, o ltimo, o maior, o menor, etc...)