sono alle prime armi con la programmazione in c e mi son imbattuto negli alberi binari.
ho trovato una funzione che ricerca un elemento e restituisce il puntatore che la punta:
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;
}
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!!!
è sbagliato il programma? oppure mi sfugge qualcosa sulla ricorsione?
grazie in anticipo per chi mi vorrà rispondere.