Ho un piccolo problema con la fusione di due liste passate come parametro ad una funzione che restituisce la lista risultato. Ho scritto già interamente tutto il codice, e credo che la logica sia pienamente quella giusta, infatti nella maggior parte dei casi funziona, con determinate stringhe però, l'algoritmo non funziona più come dovrebbe, e il programma va in loop. Dove sta l'errore ?
codice:nodo *fusion_liste(nodo *head, nodo *head2){ nodo *new_nodo; if((head!=NULL)||(head2!=NULL)){ if(head==NULL){ new_nodo=dup_lista(head2); } else if(head2==NULL){ new_nodo=dup_lista(head); } else if(strcmp(head->stringa,head2->stringa)<0){ new_nodo=create_nodo(head->stringa); new_nodo->next=fusion_liste(head->next,head2); } else{ new_nodo=create_nodo(head2->stringa); new_nodo->next=fusion_liste(head,head2->next); } } return new_nodo; } nodo *dup_lista(nodo *n){ nodo *dup=NULL; if(n!=NULL){ dup=create_nodo(n->stringa); if(n->next!=NULL) dup->next=dup_lista(n->next); } return dup; }

Rispondi quotando