???Originariamente inviato da miki miki
non riesco a capire come faccia a "risalire" i nodi senza riiniziare a scandire il nodo sinistro.
faccio un esempio: arriva al null destro di 2 la funzione poichè quel puntatore è null ridà t che è il nodo 4 a questo punto la prima istruzione del programma è:
temp = trova(t->left, d)...allora riscende a scandire 2!!!
Sei in 2 e vedi che a destra c'è NULL. La funzioni termina e restituisce il controllo a chi l'ha chiamata. Il chiamante si era interrotto sulla chiamata trova(t->right, d) e riprende da lì!
La funzione è costruita in modo tale da scendere a sinistra (si fa PUSH) fino a che è possibile. Quando si incontra una foglia (nodo a NULL) si torna al nodo padre (si fa POP) e si esplora il nodo a destra (si ritorna a fare PUSH) che a sua volta viene esplorato a partire da sinistra... Hai presente come funziona la chiamata di una funzione?Originariamente inviato da miki miki
il programma quando risale come fa a tornare alla radice e sapere che i nodi sottostanti li ha gia visti?