L'algoritmo è corretto e di fatto è una visita pre-order dell'albero binario alla ricerca del dato (qui trovi un applet java che descrive i tre tipi di visita degli alberi binari).
In realtà c'è un errore... nelle chiamate ricorsive alla funzione trova() viene specificato solo il primo argomento e non il secondo (il dato) quindi è da riscrivere così:
Comunque la prossima volta specifica il linguaggio nel titolo del topic, oltre ad indentare il codice come ti diceva Alex.codice:tree trova (tree t, Tipo d) { tree temp; if (t == NULL || t->dato == d) { return t; } temp = trova(t->left, d); if (temp == NULL) { return trova(t->right, d); } else { return temp; } }

Rispondi quotando