Miten Monena Traversal Binary Tree Java

Java ei ole binääripuu luokka, vaikka se on helppo esittää version tietorakenne tehdä monena kulkea."Läpikäyminen" of binääripuun on kaavamaisesta menettely vierailevat kunkin solmun binääripuu kerran.Monena läpikäyminen tekee tämän lajitellun järjestyksessä.Läpikäynti on usein toteutettu jonkinlainen iteraattori (kuten luettelo iteraattori) tai menetelmä, joka soittaa soittopyynnön menetelmä kullekin solmulle.Voit kuitenkin tehdä ilman kutsuja tai iteraattorit, sen sijaan tulostus konsoliin jokaisen solmun vieraili.

Ohjeet

  1. Luo perus binäärihakupuu luokan.Tässä vaiheessa, sinun tarvitsee vain perustiedot rakentaja menetelmä, joka alustaa solmun arvoa ja insertti menetelmä.Insertti menetelmä käy läpi puun ja tehdä uusi solmu oikeassa paikassa."" Public class BinaryTree {
    BinaryTree jäljellä;
    BinaryTree oikea;
    int arvo;

    julkinen BinaryTree (int v) {
    arvo = v;
    }

    // Aseta arvo puuhun
    public void insert (int v) {
    jos (v & lt; arvo) {
    jos (vasen == null)
    vasemmalle = uusi BinaryTree (v);
    muu
    left.insert (v);
    }

    if (v & gt; arvo) {
    jos (oikea == null)
    oikealle = uusi BinaryTree (v);
    muu
    right.insert (v);
    }
    }
    } ""

  2. Luo ilmentymän (solmu) binääripuu, joka on juurisolmu.Kuten mikä tahansa muu solmu, juurisolmun on oltava arvo.Se on yleensä parasta valita arvoa lähellä mediaani objektien olet tallentamiseen, kuten binary puiden pitäisi olla mahdollisimman tasapainoinen."" BinaryTree b = uusi BinaryTree (50), ""

  3. Aseta solmut puuhun tietyissä säilyttääkseen tasapainon, koska tämä binääripuu ei ole automaattinen tasapainotus.Tämä esimerkki luo pienin puu mahdollista, jotta säilyttää tehokkuus. "" 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. Siirrä koko puun käyttäen monena kulkea.Vasen puu ajetaan ensin, sen jälkeen juurisolmun, ja sitten oikea puu ajetaan.Käyttämällä rekursio, koodi on vain kolme riviä.Kuitenkin, koska rekursio vie tilaa pinosta, sitä pitäisi käyttää huolella.Pienellä ja tasapainoinen binääripuu, rekursio ei tukahduta pino.

  5. Lisää uuden menetelmän Java BinaryTree luokan nimeltä monena.
    "" public void monena () {
    jos (vasen! = Null) left.inorder ();
    System.out.println (arvo);
    jos (oikea! = Null) right.inorder ();
    } ""

  6. Soita monena menetelmän jälkeen insertit tulostaa solmut lajitellun järjestyksessä. "" B.inorder (); "

Vinkkejä & amp; varoitukset

  • menetelmät, kuten "poista solmu" menetelmä ei tue tätä esimerkkiä luokan.
  • Tässä esimerkissä on monena läpikäynti, pino vain kasvaa puun korkeuden, niin pinon voittit ylivuoto. Jos binary puu on erittäin suuri, läpikäynti toimintaa tulee toteuttaa iteratiivisesti.
  • Kuten mitä tahansa ohjelmointikielellä, epätasapainoinen binary puita Java voi tulla hyvin pitkä ja ovat tehottomia.
389
0
1
Java Ohjelmointi