MAIN:
sortLista ordina gli elementi in base al cognome.codice:int main(int argc, char *argv[]) { system("color F2"); stringa nome, cognome; int i = 0, k = 0; cout << "\t\t - LISTA 1 - \n\n"; pNodo lista = creaLista(); pNodo lista2 = creaLista(); pNodo lista3 = creaLista(); while(i < 3){ cout << "\t Inserisci nome: "; cin >> nome; cout << "\t Inserisci cognome: "; cin >> cognome; push(lista, nome, cognome); i++; } cout << "\t\t - LISTA 2 - \n\n"; while(k < 4){ cout << "\t Inserisci nome: "; cin >> nome; cout << "\t Inserisci cognome: "; cin >> cognome; push(lista2, nome, cognome); k++; } sortLista(lista); sortLista(lista2); mergeSort(lista, lista2, lista3); stampaLista(lista3); cout << "\t "; system("PAUSE"); return EXIT_SUCCESS; }
MERGESORT:
Per il "problema" ho detto che quando arriva ad eseguire il mergeSort compare una scritta che non riesco a leggere perchè subito si chiude, ma non crashacodice:void mergeSort(pNodo lista, pNodo lista2, pNodo &lista3) { while(lista && lista2){ if(strcmp(lista->cognome, lista2->cognome) > 0) push(lista3, lista->nome, lista->cognome); else push(lista3, lista2->nome, lista2->cognome); } while(lista){ push(lista3, lista->nome, lista->cognome); } while(lista2){ push(lista3, lista2->nome, lista2->cognome); } }

Rispondi quotando