Se intendi magari si capisce meglio...
codice:
tree trova (tree t, Tipo d) {
tree temp;
if (t == NULL || t->dato == d) {
return t;
}
temp = trova(t->left);
if (temp == NULL) {
return trova(t->right);
} else {
return temp;
}
}
Originariamente inviato da miki miki
pero' non capisco come funziona la ricorsione!!
secondo me una volta chiamata per la prima volta trova con argomento al puntatore a sinistra non riesce piu' a cercare il sottoalbero a destra!!!
Viene chiamato trova(t->left). Prima o poi però quel metodo restituirà il controllo e a quel punto si controlla se temp vale NULL ed eventualmente si chiama trova(t->right)...