Anonymní profil Fil – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Fil – Programujte.comAnonymní profil Fil – Programujte.com

 

Příspěvky odeslané z IP adresy 90.180.32.–

Fil
Java › Problem s metodou vloz u bin…
6. 5. 2012   #157434

#4 Michal
Po stisku tlacitka sa vykona   seznam = Generovani.generuj(poc);

generuj mimo ine zavola seznam.vlozXX(xx);

vlozXX vola  halda.vloz(xx);

a toto zavola uvedenu metodu

public void vlozKoren(Object item) {
        if (koren == null) {
            Node novy = new Node();
            novy.setData(item);
            koren = novy;
            aktualni = koren;
        }
    }

public void vlozPravy(Object item) {
        if (aktualni.getRight() == null) {
            Node novy = new Node();
            novy.setData(item);
            aktualni.right = novy;
            novy.parent = aktualni;
        } else {
            aktualni = aktualni.right;
            if (comp.compare(item, aktualni) == 0) {
            } else {
                if (comp.compare(item, aktualni) < 0) {
                    vlozLevyy(item);
                } else {
                    if (comp.compare(item, aktualni) > 0) {
                        vlozPravy(item);
                    }
                }
            }
        }
    }

vlozLevy je podobne

zpristupni koren len vrati data :

public Object zpristupniKoren() {
        return koren.getData();
    }

Nikde mimo to vlozKoren s korenom nemanipuluje tak prave nechapem ako je mozne, ze sa prepise...

Fil
Java › Problem s metodou vloz u bin…
5. 5. 2012   #157426

#2 Michal
No jasne, metody vlozLevy a vlozPravy postupne idu dole az kym nenajdu volne miesto. Ale problem je, ze sa mi prepisuje furt koren. 

Na zaciatku vlozim napr. 10, kedze koren je prazdny tak sa donho vlozi 10.

Vkladam druhy prvok, napr. 14. Podmienka binStrom.koren == null nieje splnena takze sa skoci na 

if (comp.compare(o, binStrom.zpristupniKoren()) < 0) {

ale v tejto chvili uz mam v koreni ulozene cislo 14. Jak to? A tym padom sa porovna o (14) a koren (14).

Fil
Java › Problem s metodou vloz u bin…
5. 5. 2012   #157422

Mam problem s metodou vloz. Tuto metodu volam z inej triedy a vlozenie prveho prvku (korena bin. stromu je ok), ale ked vkladam dalsi prvok tak sa nieak zahadne do korena stromu vlozi ten novy prvok a teda porovnavacie metody porovnavaju 2 rovnake prvky a teda vratia 0. Takze vlastne vysledkom vlozenia napr. 10 prvkov je, ze ten posledny bude v koreni a ziadny iny v strome nieje.

 public void vloz(Object o) {

      
        if (binStrom.getKoren() == null) {
            binStrom.vlozKoren(o);
        } else {
            if (comp.compare(o, binStrom.zpristupniKoren()) < 0) {
                binStrom.setAktualni(binStrom.getKoren());
                binStrom.vlozLevyy(o);
            } else {
                if (comp.compare(o, binStrom.zpristupniKoren()) > 0) {
                    binStrom.setAktualni(binStrom.getKoren());
                    binStrom.vlozPravy(o);
                }
            }
        }
       
        jeHalda = false;
        size++;
    }

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý