gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under
the git version control system
1 import java
.util
.NoSuchElementException
;
3 import org
.svetovid
.io
.SvetovidReader
;
4 import org
.svetovid
.io
.SvetovidWriter
;
10 * id leviId desniId vrednost (x br)
12 public class StabloIOClassic
implements StabloIO
{
15 public Stablo
readStablo(SvetovidReader in
) {
16 int br
= in
.readInt();
18 for (int i
= 0; i
< br
; i
++) {
19 int id
= in
.readInt();
20 int leviId
= in
.readInt();
21 int desniId
= in
.readInt();
22 String vrednost
= in
.readLine();
23 Stablo levi
= leviId
== -1 ?
null : new Stablo(leviId
);
24 Stablo desni
=desniId
== -1 ?
null : new Stablo(desniId
);
25 Stablo element
= new Stablo(id
, vrednost
, levi
, desni
);
26 stablo
= insert(stablo
, element
);
31 private static Stablo
insert(Stablo stablo
, Stablo element
) {
35 Stablo found
= find(stablo
, element
.id
);
37 throw new NoSuchElementException("id: " + element
.id
);
39 found
.vrednost
= element
.vrednost
;
40 found
.levi
= element
.levi
;
41 found
.desni
= element
.desni
;
45 private static Stablo
find(Stablo stablo
, int id
) {
49 if (stablo
.id
== id
) {
52 Stablo rezultat
= find(stablo
.levi
, id
);
53 if (rezultat
!= null) {
56 return find(stablo
.desni
, id
);
60 public void printStablo(SvetovidWriter out
, Stablo stablo
) {
61 int br
= count(stablo
);
66 private static int count(Stablo stablo
) {
70 return 1 + count(stablo
.levi
) + count(stablo
.desni
);
73 private static void iterate(SvetovidWriter out
, Stablo stablo
) {
78 int leviId
= stablo
.levi
== null ?
-1 : stablo
.levi
.id
;
79 int desniId
= stablo
.desni
== null ?
-1 : stablo
.desni
.id
;
80 String vrednost
= stablo
.vrednost
;
81 out
.println(id
, leviId
, desniId
, vrednost
);
82 iterate(out
, stablo
.levi
);
83 iterate(out
, stablo
.desni
);
Svarog.pmf.uns.ac.rs/gitweb
maintanance
Doni Pracner