Segue abaixo as funções para transformar um lista simplesmente encadeada em uma lista duplamente encadeada e a função oposta tb….ahhh, a identação não funciona aqui… então ficou uma tripa mesmo
Lista* transforma_lista21(Lista2* l){
Lista* l1;
Lista* j;
Lista* t;
Lista2* d;
d = l;
if (lst_vazia(l)){printf(“Lista esta vazia”);
return NULL;}
t = (Lista*) malloc (sizeof(Lista));
l1 = j = t;
for (;d != NULL; j->prox = t, j = t, d = d->prox){t->info = d->info;
if (d->prox == NULL){j->prox=NULL;
return l1;}
t = (Lista*) malloc(sizeof(Lista));
}
}
Lista2* transforma_lista12(Lista* l){
Lista2* p2;
Lista2* t2;
Lista2* l2;
Lista* t = l;
if (lst_vazia(t)){
printf(“lista vazia”);
return NULL;
}
else {
t2 = (Lista2*) malloc(sizeof(Lista2));
l2 = p2 = t2;
t2->ant = NULL;
t2->prox = NULL;
for (;t->prox != NULL; t = t->prox, p2->prox = t2, t2->ant = p2, p2 = t2){
t2->info = t->info;
t2 = (Lista2*) malloc(sizeof(Lista2));
}
t2->info = t->info;
p2->prox = NULL;
return l2;
}
}
Arquivado em: C/C++, Programação
Bah nem tem o que comenta, demais, simplesmente demais uhAUHauHAuhau…
O wiglot eh loko hehehe, tu eh o salvador do 2 semestre da CC em estruturas uahUHAUHAUHA…
Vlw Wagner.
Mestre, ninja e afins! haha