gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control system 5 // Tip podataka koji predstavlja binarno stablo
6 // ID svakog cvora je tipa int a vrednost sadrzana u njemu tipa String
7 // Na velikom testu, studenti ce dobiti ovu klasu
17 }
21 }
28 }
32 }
36 }
40 }
44 }
48 }
52 }
56 }
58 @Override
60 return "(" + id + " \"" + vrednost + "\"" + (levi == null ? "" : " " + levi) + (desni == null ? "" : " " + desni) + ")";
61 }
63 @Override
72 }
74 @Override
77 // Objekat je jednak ako je identican
80 }
82 // Null je razlicit od svih objekata
85 }
87 // Ako su klase objekata razlicite, onda su i objekti razliciti
90 }
92 // Pretvorimo prosledjeni objekat u stablo
95 // Razlicit ID znaci da su objekti razliciti
98 }
100 // Takodje i vrednost
103 }
105 // Potom levo podstablo
108 }
110 // Pa desno podstablo
113 }
115 // Sva polja se poklapaju
118 }
119 }
121 // Glavni program
122 // Na velikom testu ce biti dat kostur koji ucitava potrebno stablo
123 // Od studenata ce se ocekivati da implementiraju neki algoritam poput
124 // statickih metoda koje se pozivaju u ovoj klasi
129 // Ucitavanje stabla iz fajla u "pretty" formatu
130 // StabloIO inIO = new StabloIOPretty();
131 // Stablo stablo = inIO.readStablo(Svetovid.in("pretty.txt"));
133 // Generisanje random stabla
137 // Ispisivanje stabla na ekran
142 // Broj nivoa
147 // Broj elemenata
152 // Najduza String vrednost u stablu
157 // Svi Putevi od korena do listova
161 // Obrnuto stablo
166 // Implementacije ovih algoritama su date ispod kao staticki metodi
167 // Za veliki test, od studenata ce se ocekivati da na isti nacin
168 // implementiraju algoritam koji se bude trazio u zadatku.
169 //
170 // Pored ovde implementiranih algoritama, sledi i par ideja za vezbanje:
171 // - Ispisati vrednosti cvorova sa parnim IDom
172 // - Ispisati sve vrednosti cvorova na nivou koji se ucitava sa tastature
173 // - Utvrditi da li postoji postoji putanja od korena do lista koja sadrzi
174 // string duzine 5
175 // - Napraviti novo stablo iste strukture ali sa svim vrednostima ALL CAPS
176 // - Proveriti da li je dato stablo binarno stablo pretrazivanj, tj. da
177 // su sve vrednosti u levom podstablu leksikografski pre vrednosti u
178 // korenu, svi elementi u desnom leksikografski posle, i ovo takodje
179 // vazi za oba podstabla
180 // - Koliko ima cvorova na nivou 7
181 // - Koliko se puta string "abc" javlja u stablu
183 }
185 // Vraca ukupan broj elemenata u stablu
189 }
191 }
193 // Vraca visinu stabla
197 }
199 }
201 // Vraca najduzi string sadrzan kao vrednos u nekom od cvorova
205 }
211 }
212 if (rezultat == null || (desnaVrednost != null && rezultat.length() < desnaVrednost.length())) {
214 }
216 }
218 // Ispisuje sve puteve od korena do listova
222 }
226 }
230 }
232 // Vraca obrnuto stablo od datog
236 }
241 }
242 }