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 to urobiť nevyhnutného Traversal v binárny strom v jazyku Java

Java nemá binárny strom triedu , aj keď je to jednoduché predstaviť verziu dátové štruktúry k tomu má nevyhnutného priechod . " Priechod " binárneho stromu je stereotypný postup pre návštevu každý uzol v binárnom stromu naraz . Nevyhnutného priechod bude to v zoradení poradí . Priechod je často implementovaný ako akési iterátor ( ako zoznam iterátor ) , alebo spôsobom , ktorý bude volať metódy spätného volania pre každý uzol . Môžete však urobiť bez použitia spätné volanie alebo iterátory , namiesto tlače na konzolu každý uzol navštívili . Pokyny dovolená 1

Vytvorte si základné binárny vyhľadávací strom triedu . V tomto bode , budete potrebovať len základnú metódu konštruktora , ktorý inicializuje hodnotu uzla a metódu vloženie . Metóda insert bude prechádzať strom a vytvoriť nový uzol na správnom mieste . " " Public class BinaryTree { BinaryTree vľavo , vpravo BinaryTree , int hodnota ; verejné BinaryTree ( int v ) { value = v ; } //Vložte hodnotu do stromu public void vložkou ( int v ) { if ( v prípade , ( vľavo = = null ) vľavo = new BinaryTree ( v ) , inak left.insert ( v ) ; } else if ( v > hodnota ) { if ( vpravo == null ) vpravo = new BinaryTree ( v ) , inak right.insert ( v ) ; } } } " "
2

Vytvorenie inštancie ( uzol ) z binárneho stromu , ktorý bude koreňový uzol ako akýkoľvek iný uzol koreňový uzol musí mať hodnotu Je to zvyčajne najlepšie .. . zvoliť hodnotu blízku mediánu objektov ste skladovanie , ako binárne stromy by mali byť vyvážené ako je to možné " , " BinaryTree b = new BinaryTree ( 50 ) , " "
3 < .. p > Vložiť uzly do stromu v konkrétnom účelom udržania rovnováhy , pretože binárny strom nie je auto -vyrovnávanie Tento príklad vytvorí najmenší strom možné, aby bola zachovaná účinnosť " " 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

pohybovať po stromu s použitím nevyhnutného priechod vľavo strom je previazaný ako prvý , nasleduje koreňový uzol , a potom vpravo strom . prejsť . Použitie rekurzia , kód je len tri riadky . Vzhľadom k tomu , rekurzia sa miesta v zásobníku , je potrebné používať opatrne . S malým a vyváženého binárneho stromu , bude rekurzia nie je pretečeniu zásobníka .
5 < . p > Pridať novú metódu triedy Java BinaryTree názvom nevyhnutného " " public void nevyhnutného ( ) { if ( left = null ! ) left.inorder ( ) ; System.out.println ( hodnota ) ; if ( vpravo = null ) right.inorder ( ) ; } " "
6

Volanie metódy nevyhnutného po svojich vložiek pre tlač uzly v triedenom poriadku . " " b.inorder ( ) ; "

Najnovšie články

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