Per fare un " attraversamento " di un albero binario in Java significa fare una elaborazione algoritmica dei nodi in una sorta di ordine . A " preorder " attraversamento significa che il nodo principale viene elaborato per primo , e poi il resto dei nodi dell'albero sono trattati in modo ricorsivo . La funzione di attraversamento sarà sufficiente stampare ogni nodo che visita alla console . Istruzioni
1
Creare una semplice ricerca Categoria albero binario che ha un costruttore di base che inizializza il valore del nodo . Inoltre incluso dovrebbe essere un metodo di inserimento per attraversare un albero e creare un nuovo nodo nella posizione corretta . " " public class BinaryTree { BinaryTree sinistra ; BinaryTree destra ; valore int ; pubblico BinaryTree ( int v) {valore = v; } //Inserire un valore nell'albero public void insert ( int v) {if (v if ( sinistra = = null) a sinistra = new BinaryTree ( v) ; altro left.insert (v );} else if (v > value) {if ( a destra == null) a destra = new BinaryTree ( v) ; altro right.insert (v ) , . } } } " "
2
Costruire il nodo radice dell'albero binario , assegnandogli un valore che è vicino alla media del degli oggetti sarete memorizzano Questo garantirà l'efficienza , in quanto il tuo albero binario deve essere abbastanza equilibrato Se stai memorizzare una distribuzione di numeri da 1 a 100 , per esempio , 50 è un buon valore per il nodo radice " " BinaryTree b = new BinaryTree (50); " . ».
3
nodi inserire nel albero in un ordine particolare . l'albero binario non è auto - bilanciamento , per cui l'inserimento di nodi in un ordine specifico aiuta a mantenere l'equilibrio . Ecco i nodi sono posto per fare un albero corto ed efficiente equilibrato " " b.insert ( 20 ) . b.insert ( 40 ) ; b.insert ( 10) ; b.insert ( 5) ; b.insert ( 45 ) ; b.insert ( 70); b.insert ( 60) ; b.insert ( 80) ; b.insert ( 55 ) ; b.insert ( 85); " "
4
fare un preordine attraversando il il nodo principale , poi l'albero a sinistra e infine l'albero giusto . e 'facile fare questo in modo ricorsivo con un piccolo albero binario , in quanto non trabocchi la pila . Se il vostro albero binario è molto grande , la funzione di attraversamento deve essere attuato iterativo .
5
Aggiungi un nuovo metodo , preorder , alla classe BinaryTree . Ecco il metodo stampa solo il valore di ogni nodo che visita. " " vuoto preorder pubblico ( ) { System.out.println ( valore ), se ( sinistra = null ! ) left.preorder ( ), se ( a destra = null ! ) right.preorder (); } " "
6
chiamare il nuovo metodo dopo i vostri inserti per stampare i nodi in preorder " " b.preorder (); " .