gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Stabla, dodati komentari i ideje za veliki test
[spa2-materijali.git] / Stabla / Primeri za test / StabloIOIndent.java
1 import org.svetovid.SvetovidFormatException;
2 import org.svetovid.io.SvetovidReader;
3 import org.svetovid.io.SvetovidWriter;
5 /*
6 * Ova klasa sluzi za ucitavanje i snimanje stabala. Nije potrebno znati je,
7 * i bice data, prilikom izrade prakticnih zadataka.
8 *
9 * Ocekivani format fajla je sledeci:
10 *
11 * id vrednost
12 * levi
13 * desni
14 *
15 * Primer fajla je indent.txt
16 */
17 public class StabloIOIndent implements StabloIO {
19 protected String nullSymbol;
20 protected String indent;
22 public StabloIOIndent() {
23 this("-", " ");
24 }
26 public StabloIOIndent(String nullSymbol, String indent) {
27 this.nullSymbol = nullSymbol;
28 this.indent = indent;
29 }
31 public String getNullSymbol() {
32 return nullSymbol;
33 }
35 public void setNullSymbol(String nullSymbol) {
36 this.nullSymbol = nullSymbol;
37 }
39 public String getIndent() {
40 return indent;
41 }
43 public void setIndent(String indent) {
44 this.indent = indent;
45 }
47 @Override
48 public Stablo readStablo(SvetovidReader in) {
49 try {
50 int id = in.readInt();
51 String vrednost = in.readLine();
52 Stablo levi = readStablo(in);
53 Stablo desni = readStablo(in);
54 Stablo stablo = new Stablo(id, vrednost, levi, desni);
55 return stablo;
56 } catch (SvetovidFormatException e) {
57 return null;
58 }
59 }
61 @Override
62 public void printStablo(SvetovidWriter out, Stablo stablo) {
63 write(out, stablo, nullSymbol, indent, "");
64 }
66 protected void write(SvetovidWriter out, Stablo stablo, String nullSymbol, String indent, String prefix) {
67 if (stablo == null) {
68 out.println(prefix + nullSymbol);
69 return;
70 }
71 int id = stablo.getId();
72 String vrednost = stablo.getVrednost();
73 out.print(prefix);
74 out.println(id, vrednost);
75 write(out, stablo.getLevi(), nullSymbol, indent, prefix + indent);
76 write(out, stablo.getDesni(), nullSymbol, indent, prefix + indent);
77 }
78 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner