[C++] Algoritmo di inserimento alberi n-ari
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.
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
La funzione inserisci può arrivare alla fine senza incontrare un return. Hai provato a compilarlo?
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); }