Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako Traverse binárne stromy v jazyku Java

Binárne stromy sú komplexné dátové štruktúry používané v počítačových programov na ukladanie dát do pamäte pomocou spoločného úložiska algoritmus . Pri použití tohto typu algoritmu , dáta môžu byť uložené v stabilnej štruktúre , takže načítanie a prehľadávanie dát jednoduchšie . Java programátori , ktorí sú navrhovaní binárne stromy sú viac než pravdepodobné , že tiež navrhovať algoritmy pre prechádzanie týchto dátových štruktúr . Existujú tri spôsoby , ako prechádzať binárne stromy : v - poradí , pre- order a post - poradí . Veci , ktoré budete potrebovať
Java Development Kit ( JDK )
Text Editor
Zobraziť ďalšie inštrukcie Cestuj 1

Najeďte binárny strom pomocou in - poradí priechod . Za predpokladu , že trieda " BT " predstavuje binárny strom , Nasledujúci kód ukazuje, ako vytlačiť strom na objednávku . Každý uzol má ľavej a pravej ukazovateľ , ktorý ukazuje na ľavej a pravej uzly aktuálneho uzla , spolu s dátovou položku, ktorá predstavuje svoju hodnotu . Priechod na objednávku bude prechádzať ľavý uzol prvého až udrie null , a tlač nadradený uzol pred rolovaním pravdu a začať znovu . Prostriedky , že každý uzol bude tlačiť len ak sú všetky jeho ľavej strane podriadené uzly vytlačenia prvej :

public class BT {

public void nevyhnutného ( Node x ) {

if ( x == null ) { return ; //zastaví rekurzia , keď nie je tam žiadny uzol }

nevyhnutného ( x.left ) ; //vždy prejsť doľava firstprint x.data ; //tlačové dáta raz vľavo returnsinOrder uzol ( x.right ) ; //posuvu vpravo }
2

Traverse strom v pre- order . Tento príkaz je podobný v - poradí , okrem toho , že tlač z uzla je pred akýmkoľvek priechod . Takže , uzol bude tlačiť svoju hodnotu , a potom traverz doľava . Potom , keď rekurzia vráti do uzla po pojazdové vľavo , uzol potom prechádzať priamo . To znamená , že uzol bude vždy tlačiť sám pred tým , než dieťa uzly tlač : klipart

public void preorder ( Node x ) {

if ( x == null ) { return ; //zastaví rekurzia , kedy nie je tam žiadny uzol }

tlač x.data ; //printinOrder ( x.left ) ; //posuvu leftinOrder ( x.right ) ; //posuvu vpravo }
3

Najeďte strom post - poradí . To je opak pre- order priechod . Uzol bude vždy vyzerať jeho ľavej alebo pravej uzly pred tlačou sám , čo znamená , že všetky ostatné podriadené uzly pod ňou budú tlačiť ako prvý :

public void postorder ( Node x ) {

if ( x == null ) { return ; //zastaví rekurzia , keď nie je tam žiadny uzol }

nevyhnutného ( x.left ) ; //posuvu leftinOrder ( x.right ) ; //posuvu rightprint x.data ; //print }

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené