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)
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 man:
radice=crea(a,i+1,&x);
//per la dimensione dell'array ho fatto una define che uso dentro la funzione : MAX.
Grazie in anticipo dell'aiuto.