Ciao a tutti ho il seguente problema : dato un albero binario devo scrivere una funzione ricorsiva che restituisce 0 se l albero è un ABR , 1 se non lo è.
La soluzione che avevo pensato ma non riesco ad applicare è quella di utilizzare la visita in ordine e verificare se la successione è crescente. Quindi utilizzando una funzione dove gli passerò due parametri var1 e var2 e verifico di chiamata in chiamata se var1 è minore o uguale di var2 appena var1 è maggiore di var2 dovrei uscire e ritornare 1 se no vado avanti.

Spero di essere stato chiaro nell esposizione del problema e che qualcuno mi aiuti GRAZIE!!!!!!!!
codice:
int ABR(nod *radice, int *b)/*0 se è un abr, 1 se non lo è*/
{
 int confronto;
 if (radice!=NULL)
   {
     confronto=ABR(radice->sinistro,&(radice->info));
     printf("valore di radice e' %d \n",radice->info);
     printf("valore di b e' %d \n",*b);
     if (radice->info>(*b))
       return 1;/*dobbiamo uscire visto che il precedente è minore del successivo*/
     else
       confronto=0;  /*vado avanti*/
     confronto=ABR(radice->destro,&(radice->info));
   }
 return confronto; 
 
}
b lo inizializzo nel maincon un valore piu grande che non posso inserire nell albero.