|
|
|
|
Strumenti |
25-01-2021, 22:17 | #1 |
Junior Member
Iscritto dal: Oct 2018
Messaggi: 1
|
Passare da Ricorsivo a Iterativo
Buonasera ragazzi, ho un piccolo problema con questa struttura dati dinamica. In pratica vorrei far diventare questa funzione ricorsiva, in modo iterativo. Qualcuno riesce ad aiutarmi? posto il codice:
Codice:
typedef char string[SIZE]; // Creo la struttura per contenere i contatti typedef struct{ string nome; string cognome; string telefono; string email; string sitoweb; } t_contatto; // Creo la struttura per creare la lista typedef struct nodo{ t_contatto inf; struct nodo *pun; } Nodo; typedef Nodo * Lista; Codice:
void InserisciContatto(Lista *pLista, Nodo * info) { if (!(*pLista)) *pLista = info; else if (strcmp(info->inf.cognome, (*pLista)->inf.cognome)>0) InserisciContatto(&((*pLista)->pun), info); else { info->pun = *pLista; *pLista = info; } } Codice:
case 2: p = (Nodo*) malloc(sizeof(Nodo)); p->pun =NULL; LeggiContatto (&p->inf); InserisciContatto(&lista, p) break; |
12-02-2021, 21:41 | #2 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12580
|
Ciao, immagino che ormai avrai già risolto, cmq anche se in ritardo ti posso consigliare di provare a ragionare sul fatto che il passo base della ricorsione rappresenta la condizione che ti fa terminare (eventualmente un ciclo), mentre il passo ricorsivo ti fa "progredire" nella scansione della lista.
Non è difficile se ci pensi . |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:39.