zanardi84
18-07-2012, 08:58
Non sapevo bene cosa indicare nel titolo perchè il mio post prescinde dal linguaggio di implementazione. Vi chiedo conferma di quello che succede percorrendo ricorsivamente un albero binario.
Utilizzo l'ordine simmetrico che prevede prima il figlio sinistro, poi la radice e il figlio destro.
se ad esempio scrivessi una funzione o un metodo del tipo:
if(radice != null){
visualizza figlio sinistro;
visulizza radice;
visualizza figlio destro;
}
Se la radice non è null continua ad eseguire "visualizza figlio sinistro".
Quando trova null è giusto dire che risale perchè recupera l'esecuzione delle istruzioni "visualizza radice" e "visualizza figlio destro" per ogni volta che è stata eseguita la "visualizza figlio sinistro", come se le istruzioni fossero messe su una pila che deve essere svuotata??
Utilizzo l'ordine simmetrico che prevede prima il figlio sinistro, poi la radice e il figlio destro.
se ad esempio scrivessi una funzione o un metodo del tipo:
if(radice != null){
visualizza figlio sinistro;
visulizza radice;
visualizza figlio destro;
}
Se la radice non è null continua ad eseguire "visualizza figlio sinistro".
Quando trova null è giusto dire che risale perchè recupera l'esecuzione delle istruzioni "visualizza radice" e "visualizza figlio destro" per ogni volta che è stata eseguita la "visualizza figlio sinistro", come se le istruzioni fossero messe su una pila che deve essere svuotata??