Stranice: [1]   Idi dole
  Štampaj  
Autor Tema: Tree struktura  (Pročitano 5409 puta)
mire
Gost
« poslato: Sreda, 02. Januar 2002. 11:42:08 »

Kako da najlakse napravim tree strukturu ?

npr. treba mi hash koji ovako izgleda

TreeMapVar
        kljuc1
                kljuc2
                        vrednost
        kljuc3
                vrednost

Koliko sam shvatio, ne postoji nacin da znam koji objekat mi je u cvoru posto se cuvaju reference bazne klase Object. Mozda jedino da stavim neko string polje koje ce da vrati ime objecta pa da onda radim cast ?
Da li umesto vrednosti pravim novi TreeMap objekat ?
Kako najlakse obici ovu strukturu podataka ?
Koliko bi bilo komplikovano da se ona serijalizuje ?

10x
Sačuvana
MilanSt
Gost
« Odgovor #1 poslato: Nedelja, 24. Februar 2002. 10:46:38 »

Koliko ja znam (a za sad ne znam bas mnogo) u Javi postoji RTTI (run-time type indentification) koji mozes da iskoristas da pitas kog je zaista tipa odredjeni objekat (bez obzira da li se pamti referenca na baznu klasu ili neku izvedebu)
Sačuvana
spaske
Gost
« Odgovor #2 poslato: Nedelja, 24. Februar 2002. 22:02:39 »

Mislim da TreeMap nije klasa koju treba koristiti za stablo. Meni to izgleda kao
standardni map implementiran kao crveno-crno stablo (slicno kao npr. C++ STL map klasa).

Nije mi poznato da u standardnim java bibliotekama postoji neka struktura tipa stablo.

Ako sam dobro razumeo kakvo ti stablo treba mislim da mozes da koristis java.util.Hashtable ili jednu od klasa koje implementiraju java.util.AbstractHashMap interfejs. Pa onda radis kao sto bi npr. radio u perl-u - imas skup parova (key, value) s tim sto value moze da ti bude opet Hashtable ili atom (tj, ono sto si obelezio kao vrednost u primeru).

Kod obilaska bi za svaki nivo trebalo da pokupis keys (Enumeration object) i onda za svaki od njih potrazis value (Hashtable metod get).
Tip objekta mozes da saznas sa instanceof (primer: http://www.ergoit.co.uk/instance/Sample1.html). Znaci, opet ista logika kao u perl-u.

Serijalizacija se najjednostavnije radi sa java.io.ObjectInputStream/java.io.ObjectOutputStream - tj. u vecini slucajeva ne moras da pises posebne metode za serijalizaciju objekata - samo implementiras interfejs java.io.Serializable.
Serijalizuju se od datog objekta svi objekti do kojih vode reference (do proizvoljne dubine) a koji implementiraju java.io.Serializable. Ispravno radi i za ciklicne strukture.
Sačuvana
deyan
Gost
« Odgovor #3 poslato: Ponedeljak, 25. Februar 2002. 02:36:28 »

Ja NISAM JAVA programer, ali dobro znam da u JAVI postoje LISTE... Ako imate LISTU, onda imate i DRVO, jer drvo se moze implementirati kao lista listi...

Kako ce se prolaziti kroz stablo stvar je programera koji ga implementira pomocu Listi...
Sačuvana
spaske
Gost
« Odgovor #4 poslato: Ponedeljak, 25. Februar 2002. 09:21:39 »

Citat
Ako imate LISTU, onda imate i DRVO, jer drvo se moze implementirati kao lista listi...


Da.
Samo ja sam iz originalne poruke ukapirao da coveku treba stablo
gde je cvor ili list ili podstablo gde se direktnim naslednicima pristupa pomocu KLJUCA.
Primer je asocirao na tako nesto.

Ako sam razumeo pogresno, onda si u pravu - lista listi je OK.
Sačuvana
amidar
Gost
« Odgovor #5 poslato: Ponedeljak, 25. Februar 2002. 14:47:51 »

[quote:9d48b514b4=spaske]
[quote:9d48b514b4]Ako imate LISTU, onda imate i DRVO, jer drvo se moze implementirati kao lista listi...[/quote:9d48b514b4]
[/quote:9d48b514b4]
samo jedna mala primedba, DRVO je MATERIJAL a STABLO predstavlja STRUKTURU tj. ORGANIZACIJU (od korena preko debla pa do kroshnje)  pa je samim tim adekvatan prevod tree == stablo ! Na zhalost ovaj vrlo losh prevod se odomaccio i medju nashim profesorima po fakultetima, eh, cccccc
Sačuvana
Stranice: [1]   Idi gore
  Štampaj  
 
Prebaci se na:  

?>