gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/Stabla/Primeri za test/StabloIOIndent.java b/Stabla/Primeri za test/StabloIOIndent.java
--- /dev/null
@@ -0,0 +1,73 @@
+import org.svetovid.SvetovidFormatException;\r
+import org.svetovid.io.SvetovidReader;\r
+import org.svetovid.io.SvetovidWriter;\r
+\r
+/**\r
+ * Format:\r
+ *\r
+ * id vrednost\r
+ * levi\r
+ * desni\r
+ */\r
+public class StabloIOIndent implements StabloIO {\r
+\r
+ protected String nullSymbol;\r
+ protected String indent;\r
+\r
+ public StabloIOIndent() {\r
+ this("-", " ");\r
+ }\r
+\r
+ public StabloIOIndent(String nullSymbol, String indent) {\r
+ this.nullSymbol = nullSymbol;\r
+ this.indent = indent;\r
+ }\r
+\r
+ public String getNullSymbol() {\r
+ return nullSymbol;\r
+ }\r
+\r
+ public void setNullSymbol(String nullSymbol) {\r
+ this.nullSymbol = nullSymbol;\r
+ }\r
+\r
+ public String getIndent() {\r
+ return indent;\r
+ }\r
+\r
+ public void setIndent(String indent) {\r
+ this.indent = indent;\r
+ }\r
+\r
+ @Override\r
+ public Stablo readStablo(SvetovidReader in) {\r
+ try {\r
+ int id = in.readInt();\r
+ String vrednost = in.readLine();\r
+ Stablo levi = readStablo(in);\r
+ Stablo desni = readStablo(in);\r
+ Stablo stablo = new Stablo(id, vrednost, levi, desni);\r
+ return stablo;\r
+ } catch (SvetovidFormatException e) {\r
+ return null;\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void printStablo(SvetovidWriter out, Stablo stablo) {\r
+ write(out, stablo, nullSymbol, indent, "");\r
+ }\r
+\r
+ protected void write(SvetovidWriter out, Stablo stablo, String nullSymbol, String indent, String prefix) {\r
+ if (stablo == null) {\r
+ out.println(prefix + nullSymbol);\r
+ return;\r
+ }\r
+ int id = stablo.id;\r
+ String vrednost = stablo.vrednost;\r
+ out.print(prefix);\r
+ out.println(id, vrednost);\r
+ write(out, stablo.levi, nullSymbol, indent, prefix + indent);\r
+ write(out, stablo.desni, nullSymbol, indent, prefix + indent);\r
+ }\r
+}\r