Salve,mi scuso se la domanda risulterà molto banale ma non riesco assolutamente a risolvere il problema...
Allora io devo creare una funzione che ritorni 1 se i due alberi binari(assegnati alla funzione nel main) sono uguali.

Io ho proceduto così:

int uguali(tree t1, tree t2) {
tree l = t1, s = t2;
/* caso base: entrambi gli alberi vuoti */
if ((emptyt(l)) && (emptyt(s))) {
printf("\n\nEntrambi vuoti\n");
return 0;
}
/* caso base: un albero vuoto, un albero no */
if ((emptyt(l)) || (emptyt(s))) {
printf("\n Uno dei due alberi e' vuoto");
return 0;
}
/* i due nodi in esame devono contenere lo
stesso valore e i due sottoalberi sx e dx
devono essere uguali (ricorsivamente) */
return (l->value == s->value && uguali(l->left, s->left) && uguali(l->right, s->right));
}

E questo è il mio main:

int main(){
tree t = emptytree(), r = emptytree();
element el;
FILE *f;
int ugualiInt = 0;
f = fopen("valori.txt", "rt"); if (f == NULL) {
printf("Errore Apertura file");
exit(1);
}
while (fscanf(f, "%d", &el)>0) {
t = insertBinOrd(el, t);
//Creo i due alberi esattamente identici(ho controllato li riempisse correttamente)
r = insertBinOrd(el, r);
}

ugualiInt = uguali(t, r); printf("\n\n\tSe esce 1 va bene: %d", ugualiInt);
getchar();
}



Il problema è che mi continua a restituire 0 poiché non riesce a leggere i due alberi,o meglio li vede come vuoti. Sto sbagliando ad assegnare gli alberi alla funzione? Gli alberi sono stati creati e stampati correttamente,siccome ho provato con una funzione che li stampasse uno dietro l'altro e sono assolutamente identici.
Spero rispondiate,e mi scuso se ho sbagliato sezione o commesso qualche infrazione nel forum
Grazie.