Ho una lista concatenata di nomi e cognomi, ordinata alfabeticamente, questa funzione mi inserisce in lista una nuova persona rispettando l'ordine alfabetico. Come si capisce funziona solo se il nome viene inserito all'interno della lista, infatti se provo ad inserire un nome in testa o in coda, o crasha oppure quando faccio stampare la lista mi stampa il nuovo nome inserito in testa e quello che prima era in testa continuamente.codice:void inserisciInLista(pNodo &lista, stringa nome, stringa cognome) { pNodo p = new nodo; pNodo prec = lista, curr = lista; strcpy(p->nome, nome); strcpy(p->cognome, cognome); while(strcmp(nome, curr->nome) > 0){ prec = curr; curr = curr->next; } p->next = curr; prec->next = p; cout << "\t Nome inserito! \n\n"; }
Devo giustamente dividere le tre condizioni di inserimento, ho provato ma non mi funziona, riuscite a darmi qualche suggerimento? Grazie in anticipo!