ma se la foglia è null perchè deve tornare 1?
gli elementi li conto con il + 1 di
"return num_elem(t->sx) + num_elem(t->dx) + 1;"
prendi il nodo D del tuo esempio
le sue foglie sono null... ovvero non ha foglie, ovvero è egli stesso una foglia, giusto? quindi dovrebbe tornare 1, e infatti torna 1
return num_elem(t->sx) + num_elem(t->dx) + 1;
in italiano: Ritorna il numero di nodi a sinistra (zero) + il numero di nodi a destra (zero) + te stesso (1) = 1
quindi al suo chiamante, cioè B ritornerà 1.

Rispondi quotando