Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Java Programming >> Content
    Hvordan gjøre Postorder traversering i en Binary Tree in Java
    Selv om Java ikke gir et binært tre klasse i standard bibliotekene , er en grunnleggende binært tre klasse enkle nok til å bli presentert . A " traversering " av en datastruktur er en algoritme som besøker hver node gang . Dette er ofte implementert som en slags iterator (mye som en liste iterator ) eller metode som vil kalle en tilbakeringing metode for hver node . I Java , for å gjøre en " Postorder " traversering som vil besøke rotnoden siste , ingen tilbakekall eller iteratorer er nødvendig. Den traversering funksjonen vil bare skrive ut hver node det besøk til konsollen. Instruksjoner
    en

    Skriv en grunnleggende binært søketre klasse. Det er bare to metoder som må støttes på dette stadiet : en grunnleggende konstruktør som initialiserer nodens verdi , og et innstikk metode. Innsatsen metoden vil traversere et tre og opprette en ny node på riktig 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

    Opprett en forekomst av det binære treet som vil være rotnoden Hver node , selv rotnoden , må ha en verdi

    3

    Velg en verdi for rotnoden som er et sted i midten av objektene du skal lagre . for eksempel, hvis du lagrer en jevn fordeling av tallene fra 1 til 100, er 50 et godt valg for rotnoden Binære trær bør være så balansert som mulig, siden ubalanserte trær vokser ekstremt høy og er ikke veldig effektivt " " BinærTre b = new BinærTre ( 50 ), " . . "
    4

    Insert noen noder inn i treet. Siden dette treet er ikke auto - balansering , for å beholde balansen , bør noder settes inn i en bestemt rekkefølge . rekkefølgen i dette eksempelet koden er laget for å gjøre den korteste og mest effektive tre mulig. " " b . innsatsen ( 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 ), " "
    5

    Traverse treet, krysser venstre treet først , deretter den høyre treet, og deretter endelig rotnoden . Hvis rekursjon benyttes for å gjøre den Postorder traversering , er metoden bare tre linjer lange . i dette tilfellet vil stabelen bare vokse til høyden av treet. Ettersom treet er balansert og liten , rekursjon vil ikke overløp stabelen .
    6

    Legg til ny metode til BinærTre klasse kalt Postorder . Her er det bare skriver verdien av hver node det besøk . " " public void Postorder ( ) { if ( venstre ! = null ) left.postorder (); if ( høyre = null ) right.postorder (); ! System.out.println (verdi ); } " "
    7

    Skriv ut nodene i Postorder ved å ringe b.postorder metode etter dine inserts " " b.postorder (); " .

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan kjøre applet i Java 
    ·Hvordan lage et Word-dokument i Java 
    ·Hvordan vet jeg hvilken versjon av Java kjører på Min…
    ·Slik fjerner du en understreng Fra String i Java 
    ·Hvordan oppdage en sirkularitet i en lenket liste i Jav…
    ·PowerPoint-presentasjon Opplæring: Kjerne Java 
    ·Fordeler og ulemper med Java Virtual Machine Tolk 
    ·Hvordan å analysere Recursive XML Elements i Java 
    ·Forskjeller mellom grensesnitt og Abstracts i Java 
    ·Hvordan beregne rader i java.awt.Point 
      Anbefalte artikler
    ·Slik skriver du effektive objektorientert kode 
    ·Slik Finn Enum Typer 
    ·Hvordan gjør jeg en knapp vises basert på angitte dat…
    ·Den Java-kode som sjekker inngangsverdien Med Array Ver…
    ·Teknikker av semantisk Beskrivelse 
    ·Hvordan bruke Derfor Symbol i LaTeX 
    ·Hvordan å kompilere et COBOL Command Window 
    ·Hvordan legge til en Record Med SQL 
    ·Hvordan lage SAP bakgrunn Jobs automatisk 
    ·Twitter API Password Length grense 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/