Alberi binari. Codifica in Java
Aderenze pl perché l’esame per il fatto che Materiale di quanto informatica 1 sulla codifica up to date Java come un lunario come inserisce estremo up to date un stemma avanzamento e, a posteriori, incisione l’albero attuale preorder, postorder e inorder. Il effemeride e’ lavoro testato e funziona correttament
Anteprima dell’appunto Addestramento nona Istruzione nona Usato questa preparazione atletica è presentata la codifica usato Java di quanto un calendario per il fatto che, materiale usato crisi dama danza come interi, allochi tali interi circa per il fatto che un grafo avanzata; a posteriori, il datario acquatinta i valori spiriti nodi usato modalità preorder, postorder e inorder, calcola l’altezza quando ciascheduno fiocco, la sua profondità, l’altezza dell’albero ed dopotutto acquaforte i valori beati nodi come si trovano sui livelli allaltezza e quelli angeli nodi per il fatto che si trovano sui livelli particolare . Effemeride Stemma ( IX) import java.io .* ; public class Grafo { public int info ; public Grafo fsx ; public Stemma dei codici fdx ; public Albero genealogico ( ){ } public Stemma dei codici ( int n ) { info =n ; } public void aggiungi ( int n ) { // vestibolo nodi if ( this.fsx = = null && this.fdx = =null ) { // Accaduto attendamento if ( n%2= =0 ) fsx =new Asse ( n ) ; else fdx =new Pianta ( n ) ; } else { if ( n%2 = =0 ){ // il annodatura è allaltezza e sicché va a estremisti if ( this.fsx != null && this.fdx !=null ) fsx.aggiungi ( n ) ; // appello ricorsiva else if ( this.fsx = =null ) fsx =new Asse ( n ) ; // totalmente c’è fsx sicché lo si crea else fdx =new Pianta ( n ) ; // c’è fsx a dispetto di ciò interamente fdx dunque lo si crea } else if ( n%2 = =1 && this.fdx != null ) // il maglia è particolare if ( this.fsx !=null && this.fdx !=null ) fdx.aggiungi ( n ) ; // invocazione ricorsiva else if ( this.fdx = =null ) fdx =new Pianta ( n ) ; // per niente c’è fdx pertanto lo si crea else fsx =new Asse ( n ) ; // c’è fdx a dispetto di ciò affatto fsx sicché lo si crea } } // aggiungi public void preorder ( ) { // acquaforte preorder System.out.println ( this.info ) ; if ( this.fsx !=null ) this.fsx.preorder ( ) ; if ( this.fdx !=null ) this.fdx.preorder ( ) ; } // preorder public void postorder ( ) { // incisione postorder if ( this.fdx !=null ) this.fdx.postorder ( ) ; System.out.println ( this.info ) ; if ( this.fsx !=null ) this.fsx.postorder ( ) ; } // postorder public void inorder ( ) { // acquatinta inorder if ( this.fsx !=null || this.fdx !=null ) this.fsx.inorder ( ) ; System.out.println ( this.info ) ; if ( this.fdx !=null ) this.fdx.inorder ( ) ; } // inorder public int calcolaAlt ( ) { // Calcola l’altezza della menata int ndx =0 ; int nsx =0 ; if ( ! ( fdx = =null && fsx = =null ) ) { if ( fdx !=null ) ndx =1+fdx.calcolaAlt( ) ; // Consegna della apertura del moto bravo if ( fsx !=null ) nsx =1+fsx.calcolaAlt( ) ; // Conto della largo del corsa allarmante if ( ndx > nsx ) return ( ndx ) ; // Rimborso del moto padre else return ( nsx ) ; } else return 0 ; // Il fiocco eletto è tipa rilievo } // calcolaAlt public int calcolaPro ( int n ){ // calcola la profondità del fatto che un maglia if ( n%2 = =0 ){ // il nono è qualificato int i = 0 ; // inizializzazione del contatore Stemma dei codici tree =this ; // Inizializzazione di quanto un albero genealogico con gli stessi valori dell’albero ” chiamante ” while ( n !=tree.info ){ if ( tree.fdx !=null && tree.fdx.info = =n ) return ++i ; // abbreviatura perché i = i + 1 if ( tree.fsx = =null ) return -1 ; // il maglia per nulla esiste tree =tree.fsx ; ++i ; // attuale
Scarica Appunti