Ciao a tutti,
mi dareste una mano a comprendere bene che ragionamento seguire quando devo fare chiamate ricorsive per gestire un albero binario?
Ad esempio stavo provando a studiare questo codice che conta il numero di elementi presenti nell'albero:
Uno dei miei dubbi più grandi è:codice:int num_elem(tree t) { if (t == NULL) return 0; else return num_elem(t->sx) + num_elem(t->dx) + 1; }
una volta raggiunto il nodo foglia (d ad esempio) num_elem(t->sx) torna essendo NULL 0, ma dopo che succede??
Si torna alla funzione del nodo chiamante (b) e poi si visita il nodo dx oppure si lancia num_elem(t->dx) relativa alla funzione che ha precedentemente chiamato num_elem(t->sx) (tornando 0)??
Grazie