ciao ragazzi,
non riesco trovare una soluzione a questo programma che dato un array non ordinato mi metta gli elementi in un ABR.
esempio:
array----> 10 5 40 23 8 56 2 17 13->null
albero deve essere:
10
5 40
2 8 23 56
17 13
posto qui il mio codice (SBAGLIATO)
codice:node *crea(int a[],int i,int x,int *flag){ node *radice=NULL; node *aux; if((*flag)==0){ radice=creanodo(NULL,NULL,a[0]); (*flag)=(*flag) +1; } if(i>MAX) return NULL; else{ if(radice==NULL) {aux=creanodo(NULL,NULL,a[i]);return aux;} else{ if((a[i]>a[i+1])&&((i+1)<MAX)) radice->sx=crea(a,i+1,x,flag); else if((a[i]<a[i+1])&&((i+1)<MAX)) radice->dx=crea(a,i+1,x,flag); return radice; } } }
chiamata al main:
radice=crea(a,i+1,&x);
//per la dimensione dell'array ho fatto una define che uso dentro la funzione : MAX.
//L'output e' sbagliato dato che non sono riuscito a fare una funzione giusta
//Grazie in anticipo dell'aiuto.

Rispondi quotando