Miten Postorder Traversal vuonnaBinary Tree Java

Vaikka Java ei ole binääripuu luokan oletus kirjastoissa, perus binääripuu luokka on yksinkertainen riitä esitettävä."Läpikulun" ja tietorakenne on algoritmi, joka vierailee kukin solmu kerran.Tämä on usein toteutettu jonkinlainen iteraattori (paljon kuin listan iteraattori) tai menetelmä, joka soittaa soittopyynnön menetelmä kullekin solmulle.Java, tehdä "postorder" läpikäynti joka vierailee juurisolmu viime, ei kutsuja tai iteraattorit ovat tarpeen.Läpikäyminen toiminto yksinkertaisesti tulostaa jokaisen solmun se vierailee konsoliin.

Ohjeet

  1. Kirjoita perus binäärihakupuu luokan.On vain kaksi tapaa, jotka on tuettava tässä vaiheessa: perus rakentaja, joka alustaa solmun arvon, ja insertti menetelmää.Insertti menetelmä kulkevat puu ja luoda 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. luoda esimerkiksi binääripuun joka on juurisolmu.Jokainen solmu, jopa juurisolmu, on oltava arvo.

  3. Valitse arvo juurisolmu joka on jossain keskellä esineiden sinua tallentamiseen.Esimerkiksi, jos olet tallentamisen tasaisen numerot 1-100, 50 on hyvä valinta juurisolmu.Binary Puiden olisi mahdollisimman tasapainoinen, koska epätasapainoinen puut kasvavat erittäin pitkä ja eivät ole kovin tehokkaita. "" BinaryTree b = uusi BinaryTree (50), ""

  4. lisätä joitakin solmuja puuhun.Koska tämä puu ei ole automaattinen tasapainotus, säilyttää tasapaino, solmuja olisi lisättävä tietyssä järjestyksessä.Jotta tässä esimerkissä koodi on muotoiltu tekemään lyhin ja tehokkain puu mahdollista. "" 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); ""

  5. Traverse puu, liikkumisesta vasemmalla puu ensin ja sen jälkeen oikea puu, ja sitten lopulta juurisolmu.Jos rekursio on tapana tehdä postorder traversal, menetelmä on vain kolme riviä pitkä.Tässä tapauksessa, pino vain kasvaa puun korkeuden.Koska puu on tasapainoinen ja pieni, rekursio ei tukahduta pino.

  6. Lisää uusi menetelmä BinaryTree luokan nimeltä postorder.Täällä, se vain tulostaa arvo kunkin solmun se vierailee. "" Public void postorder () {
    jos (vasen! = Null) left.postorder ();
    jos (oikea! = Null) right.postorder ();
    System.out.println (arvo);
    } ""

  7. Tulosta solmut postorder soittamalla b.postorder menetelmän jälkeen lisää.

    "" b.postorder (); "

vihjeitä & amp; varoitukset

  • Koska rekursio vie pino tilaa, sitä tulisi käyttää varoen. Jossinun binääripuu on erittäin suuri, läpikäynti toimintaa tulee toteuttaa iteratiivisesti.
  • monimutkaisempi "poista solmu" menetelmä ei tue tätä esimerkkiä luokassa.
309
0
1
Java Ohjelmointi