Java non ha una classe di albero binario , anche se è semplice per presentare una versione della struttura di dati per fare un ordine simmetrico . Un " attraversamento " di un albero binario è una procedura stereotipata per visitare ogni nodo dell'albero binario una volta . Un ordine simmetrico lo farà in modo ordinato . Traversal è spesso implementato come una sorta di iterator ( come una lista iterator ) oppure con un metodo che chiamerà un metodo di callback per ogni nodo . È possibile, tuttavia , fare questo senza l'utilizzo di callback o iteratori , invece la stampa sulla console ogni nodo visitato . Istruzioni
1
Creare una ricerca di classe di base albero binario . A questo punto , si avrà solo bisogno di un metodo di costruzione di base che inizializza il valore del nodo e un metodo di inserimento . Il metodo insert attraversamento di un albero e fare un nuovo nodo al posto giusto . " " 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
Creare l'istanza (nodo) dell'albero binario che sarà il nodo principale Come qualsiasi altro nodo , il nodo principale deve avere un valore di solito è meglio per scegliere un valore vicino alla media degli oggetti che stai memorizzazione , come alberi binari devono essere il più equilibrato possibile " " BinaryTree b = new BinaryTree (50); " . "
3 < . . p > Inserire i nodi nella struttura ad albero in modo specifico per mantenere l'equilibrio, come questo albero binario non è auto - bilanciamento questo esempio viene creato il più piccolo albero possibile al fine di mantenere l'efficienza " " 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
muovono attraverso l'albero utilizzando un ordine simmetrico l'albero di sinistra è attraversato per primo, seguito dal nodo radice , e quindi l'albero giusto è . attraversato . Utilizzando la ricorsione , il codice è solo tre linee . Tuttavia, poiché la ricorsione richiede spazio di stack , dovrebbe essere usato con cautela . Con un piccolo ed equilibrato albero binario , ricorsione non overflow dello stack .
5 < p> Aggiungi un nuovo metodo alla classe BinaryTree Java denominato ordine simmetrico ", " vuoto inorder pubblico ( ) {if ( sinistra = null ! ) left.inorder ( ) . System.out.println ( value); ! if ( destra = null ) right.inorder (); } " "
6
Chiamare il metodo ordine simmetrico dopo i vostri inserti per stampare i nodi in modo ordinato ". " b.inorder (); "