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ť predobjednávku Traversal v binárny strom v jazyku Java

Ak chcete vykonať " priechod " binárneho stromu v Jave znamená robiť algoritmické spracovanie uzlov v nejakom poradí . " Preorder " priechod znamená , že koreňový uzol je spracovaný ako prvý , a potom zvyšok uzly stromu sú spracovávané rekurzívne . Funkcie priechod bude jednoducho vytlačiť každý uzol je navštívi na konzole . Pokyny dovolená 1

Vytvorenie jednoduchého binárneho triedu vyhľadávací strom , ktorý má základný konštruktor , ktorý inicializuje hodnotu uzla . Súčasťou by mala byť metóda Insert prejsť 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

Construct koreňový uzol binárneho stromu , priradí jej hodnotu , ktorá je blízko priemeru objekty budete ukladanie Tým sa zabezpečí účinnosť , pretože . Váš binárny strom musí byť pomerne dobre vyvážená Ak ste ukladanie rozloženie čísel od 1 do 100 , napríklad , 50 je dobrá hodnota pre koreňový uzol " " BinaryTree b = new BinaryTree ( 50 ) , " . "
3

Vložte uzlov do stromu v určitom poradí . binárny strom nie je automatické vyvažovanie , takže vložením uzlov v určitom poradí pomáha udržať rovnováhu . Tu uzly sú miesta , aby sa krátko a efektívne vyvážený strom " " 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

Do preorder priechod rolovaním koreňový uzol , potom ľavý strom a nakoniec pravý strom . je to jednoduché , ako to urobiť rekurzívne s malým binárny strom , pretože to nie je pretečeniu zásobníka . Ak je binárny strom je veľmi veľký , by mala byť funkcia priechod implementovaná iteratívne .
5

Pridať novú metódu , preorder , do triedy BinaryTree . Tu metóda vytlačí len hodnotu každého uzla je navštívi . " " public void preorder ( ) { System.out.println ( hodnota ) ; if ( left = null ! ) left.preorder ( ) ; if ( vpravo = null ! ) right.preorder ( ) ; } " "
6

Zavolajte novú metódu po vašich vložky . tlačiť uzly v predobjednávku " " b.preorder ( ) ; "

Najnovšie články

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