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.