alberi binari sono strutture complesse di dati utilizzati nei programmi per computer per memorizzare i dati in memoria utilizzando un algoritmo di memoria comune. Utilizzando questo tipo di algoritmo , i dati possono essere memorizzati in un modello stabile , rendendo il recupero e la ricerca attraverso dati più facile. Programmatori Java che progettano alberi binari sono più che probabile anche la progettazione di algoritmi di attraversare quelle strutture di dati . Ci sono tre modi per attraversare alberi binari : in ordine , il pre-ordine , e post- ordine . Cose che ti serviranno 
 Java Development Kit ( JDK ) per l'editor di testo 
 Show More Istruzioni 
 1 
 attraversare l'albero binario utilizzando in ordine di attraversamento . Supponendo che la classe "BT " rappresenta un albero binario , il codice seguente mostra come stampare l'albero in ordine . Ogni nodo ha un puntatore sinistro e destro che si riferisce ai nodi sinistro e destro del nodo corrente , insieme con un elemento di dati che rappresenta il suo valore . L' in -ordine sarà attraversare il nodo di sinistra prima fino a colpire nulla , e la stampa nodo del genitore prima di attraversare a destra e ricominciare da capo . L' significa che ogni nodo viene stampata solo se tutti i suoi nodi figlio del lato sinistro sono stampati prima : 
 
 public class BT { 
 
 public void inOrder (Nodo x ) { 
 < p > if ( x == null) { return; //ricorsione si ferma quando non c'è nodo } 
 
 inOrder ( x.left ) ; //sempre traversare a sinistra firstprint x.data ; //stampare i dati una volta il returnsinOrder nodo sinistro ( x.right ) ; //traverse a destra } 
 2 
 attraversare l'albero in pre- ordine . Questo ordine è simile a in-order , tranne che la stampa del nodo viene prima di ogni attraversamento . Quindi , il nodo viene stampato il suo valore , e poi attraversare a sinistra . Poi , quando la ricorsione ritorna al nodo dopo aver attraversato sinistra , il nodo verrà poi traversare a destra . Ciò significa che il nodo stamperà sempre se stessa prima di ogni bambino nodi stampa : 
 
 public void Preorder (Nodo x ) { 
 
 if ( x == null) { return; //ferma la ricorsione quando non vi è alcun nodo } 
 
 stampa x.data ; //printinOrder ( x.left ) ; //traverse leftinOrder ( x.right ) ; //traversa a destra } 
 3 
 attraversare l'albero di post- ordine . Questo è l' opposto del pre -ordine . Un nodo cercherà sempre per i suoi nodi di sinistra o di destra prima della stampa stessa, il che significa che tutti gli altri nodi figlio sotto di esso verranno stampati prima : 
 
 public void postorder (Nodo x ) { 
 
 se ( x == null) { return; //ricorsione si ferma quando non c'è nodo } 
 
 inOrder ( x.left ) ; //traverse leftinOrder ( x.right ) ; //traverse rightprint x.data ; //print}