MAIN:
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;
}
sortLista ordina gli elementi in base al cognome.
MERGESORT:
codice:
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);
}
}
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 crasha