[C++] Algoritmo di inserimento alberi n-ari

Messaggioda 3lisinfor » 17/06/2020, 14:54

Buongiorno a tutti, ho provato a implementare un algoritmo in C++ di inserimento ricorsivo per alberi n-ari ordinati. Vorrei sapere se qualcuno potrebbe dirmi se è corretto e eventualmente spiegarmi cosa c'è che non va.
Grazie in anticipo a chi cercherà di aiutarmi.

Codice:
struct Nodo{
    int info;
    Nodo *next;
    }
   
Nodo* inserisci(Nodo *pnodo, int el){

    if(pnodo == NULL)
        pnodo = new Nodo;
        pnodo->info = el;
       
    else {
        if (pnodo-> info > el)
            pnodo-> next = inserisci(Nodo *pnodo->next, el);
        else
            return pnodo;
           }
}
3lisinfor
Starting Member
Starting Member
 
Messaggio: 1 di 4
Iscritto il: 17/06/2020, 14:48

Re: [C++] Algoritmo di inserimento alberi n-ari

Messaggioda vict85 » 18/06/2020, 08:21

La funzione inserisci può arrivare alla fine senza incontrare un return. Hai provato a compilarlo?
vict85
Moderatore
Moderatore
 
Messaggio: 10142 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: [C++] Algoritmo di inserimento alberi n-ari

Messaggioda 3lisinfor » 18/06/2020, 08:39

No non ho provato a compilarlo poichè l'esercizio assegnato chiedeva solo questa parte.. sto cercando di scrivere il resto del codice per vedere se funziona. Comuqnue hai ragione sicuramente manca un return. Da ieri l'ho modificato così e o inserito le due condizioni finali in un unico if.

Codice:
Nodo* inserisci(Nodo *pnodo, int el) {
   if ((pnodo == NULL) || (pnodo->info == el)) {
      pnodo = new Nodo;
      pnodo->info = el;
      pnodo-> next = NULL;
      return pnodo;
   } else {
      if ((pnodo->info > el) || (pnodo->info < el)
         pnodo-> next = inserisci(Nodo *pnodo->next, el);

   }
3lisinfor
Starting Member
Starting Member
 
Messaggio: 2 di 4
Iscritto il: 17/06/2020, 14:48


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite