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

elisachirico
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.

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;
           }
} 

Risposte
vict85
La funzione inserisci può arrivare alla fine senza incontrare un return. Hai provato a compilarlo?

elisachirico
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.

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);

	}

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.