Java har ikke et binært tre klasse , selv om det er enkelt å presentere en versjon av datastruktur for å gjøre en inorder traversering . A " traversering " av et binært tre er en formalistisk prosedyre for å besøke hver node på binærtreet en gang. En inorder traversering vil gjøre dette i sortert rekkefølge . Traversering er ofte implementert som en slags iterator (som en liste iterator ) eller ved en metode som vil kalle en tilbakeringing metode for hver node . Du kan imidlertid gjøre dette uten å bruke tilbakekall eller iteratorer , i stedet skrive til konsollen hver node besøkt. Instruksjoner
en
Lag en grunnleggende binært søketre klasse. På dette punktet , vil du bare trenger en enkel konstruktør-metoden som initialiserer nodens verdi og et innstikk metode. Innsatsen metoden vil traversere et tre og lage en ny node på rett sted . " " public class BinærTre { BinærTre venstre ; BinærTre høyre , int verdi ; offentlig BinærTre ( int v) { value = v ;} //Sett inn en verdi i treet public void insert ( int v ) { if ( v if ( venstre = = null ) venstre = new BinærTre ( v ) , ellers left.insert ( v ); } else if ( v > verdi) {if (høyre == null ) høyre = new BinærTre ( v ) , ellers right.insert ( v ) ; . . } } } " "
2
Lag forekomsten (node ) i det binære treet som vil være rotnoden som enhver annen node , må rotnoden til å ha en verdi det er vanligvis best å velge en verdi nær medianen av objektene du lagrer , som binære trær bør være så balansert som mulig " " BinærTre b = new BinærTre ( 50 ), " . "
3 < . . p> Sett noder i treet i bestemt rekkefølge for å beholde balansen , da dette binære treet er ikke auto -balancing dette eksemplet oppretter den minste treet mulig for å opprettholde effektiviteten " " 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
Move over tre ved hjelp av en inorder traversering den venstre treet er krysset først, etterfulgt av rotnoden , og deretter høyre treet er . krysset. bruk rekursjon , er koden bare tre linjer. Men siden rekursjon tar stakkplass , bør det brukes med forsiktighet. Med en liten og balansert binært tre , rekursjon vil ikke overløp stabelen .
5 < p > Legg til en ny metode til Java BinærTre klasse kalt inorder " " public void inorder ( ) { if ( venstre = null ! ) left.inorder (); . System.out.println (verdi ); ! if ( høyre = null ) right.inorder (); } " "
6
Ring inorder metoden etter dine innsatser for å skrive ut nodene i sortert rekkefølge . " " b.inorder (); "