05/01/08 10:31
spaghetto
Salve ragazzi, sto cercando di fare un esercizio con le liste, soltanto non capisco dove possa essere l' errore...
L' es. consiste nell' unire due liste passate ad una funzione che mi restituisce un puntatore a struttura.
Inoltre NON devo verificare se le liste siano già ordinate.
Ecco qui come ho cercato di svolgere l' esercizio..
allora la struttura è così:
e invece la mia funzione è questa...dove sbaglio?
Allora quello che cerco di fare è questo:
io ho due liste, l1 ed l2, e l' idea mia è quella di spostare ogni elemento della prima lista nella seconda, in questo modo, mi rimarrebbe diciamo la seconda lista.
Così facendo quando arrivo alla fine ritorno il puntatore alla testa della seconda lista.
Vi ringrazio in anticipo per le risposte!
L' es. consiste nell' unire due liste passate ad una funzione che mi restituisce un puntatore a struttura.
Inoltre NON devo verificare se le liste siano già ordinate.
Ecco qui come ho cercato di svolgere l' esercizio..
allora la struttura è così:
struct node { int inf; struct node * pun; }; typedef struct node node;
e invece la mia funzione è questa...dove sbaglio?
node * funz(node * l1, node * l2) { node * ptr, * succ, * prec; while(l1!=NULL) { succ=l1->pun; prec=NULL; ptr=l2; while(ptr!=NULL) { if(ptr->inf >= l1->inf) { if(prec==NULL) { l1->pun=ptr; l2=l1; } else { prec->pun=l1; l1->pun=ptr; } } prec=ptr; ptr=ptr->pun; } if(succ!=NULL) l1=succ; else return l2; } }
Allora quello che cerco di fare è questo:
io ho due liste, l1 ed l2, e l' idea mia è quella di spostare ogni elemento della prima lista nella seconda, in questo modo, mi rimarrebbe diciamo la seconda lista.
Così facendo quando arrivo alla fine ritorno il puntatore alla testa della seconda lista.
Vi ringrazio in anticipo per le risposte!
Ultima modifica effettuata da spaghetto 05/01/08 10:37
aaa