Ciao. ho difficolta a creare un albero binario di ricerca con i puntatori a puntatori. Con il singolo puntatore ci sono riuscito. qualcuno saprebbe dirmi dove sbaglio in questo codice?
il programma appena lo lancio va subito in loop.codice:typedef struct nodo { int info; struct nodo *sinistro; struct nodo *destro; }nod; int vuoto(nod **rad) { if((*rad))/*rad == NULL*/ return 0;/*albero vuoto*/ else return 1;/*albero non vuoto*/ } void inserisci(nod **punt,int numero) { if (vuoto(punt))/*se punt==NULL*/ { punt=(nod**)malloc(sizeof(nod));/*inserimento valore*/ (*punt)->info=numero; (*punt)->sinistro=NULL; (*punt)->destro=NULL; } else { if (numero>(*punt)->info)/*scorriamo a destra*/ inserisci(&(*punt)->destro,numero); else /*scorriamo a sinistra*/ inserisci(&(*punt)->sinistro,numero); } } nod **crea_albero() { int val; nod **p; *p=NULL; do { printf("INSERIRE VALORE : \n"); scanf("%d", &val); if (val!=0) /*possiamo inserire il valore*/ inserisci(p,val); } while (val!=0); return p; } int main() { nod **rad; printf("creazione ALBERO \n"); rad=crea_albero(); }

Rispondi quotando