Ciao a tutti devo fare un esercizio che legga da tastiera due insiemi di numeri non negativi memorizzandoli in due liste dinamiche ordinate in senso crescente L1 e L2 e di queste liste calcolare:
L'unione ordinata L1 U L2.
Le liste devono essere implementate per mezzo di memoria dinamica.
Il mio problema è che non riesco ad implementare questa funzione: lista unione(lista L1, lista L2), crea la lista L1 U L2 e ritorna il puntatore al nodo di testa. Cosa posso fare? sono due giorni che ci sclero.
l codice che ho fatto io è questo:
lista unione(lista L1, lista L2){
lista temp;
if((L1 == NULL) && (L2 == NULL)) return NULL;
else if((L1 == NULL) && (L2 != NULL))return L2;
else if((L1 != NULL) && (L2 == NULL))return L1;
while(L1 != NULL){
temp->x = L1->x;
temp = temp->next;
L1 = L1->next;
}
while(L2 != NULL){
temp->x = L2->x;
temp = temp->next;
L2 = L2->next;
}
return temp;
}
la compilazione avviene con successo mi fa inserire i dati però quando deve stampare a video esce dal programma...grazie mille