#4 JirkaEr
Děkuji, to je přesně co jsem potřeboval. Včera večer mě to také napadlo a když jsem dnes viděl váš příspěvek a vyzkoušel fungovalo to. Myslel jsem, že je potřeba při každém volání psát new Strom, ale teď už chápu co to vlastně znamená a proč je logické použít to jen jednou.
Děkuji.
Příspěvky odeslané z IP adresy 178.255.174.–
#2 Kit
Asi jsem to špatně vysvětlil. Když vytvořím strom přidáváním prvků
a poté dám vypisStromu() vše se vypíše. To samé ale potřebuji aby fungovalo ne pomocí klikání myší, ale pomocí textového rozhraní.
public void spustit()
{
int volba = -1;
do{
menu();
try{
volba = scan.nextInt();
}
catch(Exception e){
// vybere z klavesnice znak NL
scan.nextLine();
}
switch (volba) {
case 1: prvni(); break;
case 2: druhy(); break;
case 3: treti(); break;
case 4: ctvrty(); break;
case 5: paty(); break;
}
} while(volba != 0);
konec();
}
private static void treti()
{
Strom str = new Strom();
System.out.println("Strom obsahuje:");
str.vypisStromu();
}
Tento kód je špatně a potřebuji aby se po vytvoření hodnot spustila metoda v jiné třídě a udělala to co má.
public void vypisStromu()
{
vypisStromuDva(koren);
}
private void vypisStromuDva(Prvek oznaceny)
{
if(oznaceny == null) // výpis rodič, levý, pravý
{
return;
}
System.out.println(oznaceny.getHodnota());
vypisStromuDva(oznaceny.getLevy());
vypisStromuDva(oznaceny.getPravy());
}
Dobrý den,
potřeboval bych poradit ohledně mého projektu na binární strom. Mám vytvořenou třídu Start, ve které je naprogramováno textové rozhraní a třídu Strom, která přidává prvky do stromu, odebírá, hledá hodnotu a vypisuje celý strom. Když chci spustit metodu (např. na vypsání stromu) ze třídy Start musím napsat:
Strom str = new Strom();
System.out.println("Strom obsahuje:");
str.vypisStromu();
Bohužel se asi vytvoří zcela nový prázdný strom a nic nevypíše. Pokud už je strom hodnotami naplnění potřeboval bych, aby se metoda z jiné třídy volala a použila data z již vytvořeného stromu.
Předem děkuji za odpověď.
Marek Musil