public int toDOT(FileWriter fr, boolean redColored, int i) throws IOException { String red, format, val, blue; int me = i, aux; if (redColored) { red = "color=red, style=filled, "; } else { red = ""; } if (value == Integer.MAX_VALUE || value == Integer.MIN_VALUE) { val = ""; blue = "color=blue, style=filled, "; } else { val = "" + value; blue = ""; } format = getDOTFormat(); fr.append(me + " [" + red + blue + format + "label=\"" + pos.toString() + " " + val + "\"];\n"); boolean redSon, selected = true; for (Node son : childs) { if (selected && son.value == value) { selected = false; redSon = true; } else { redSon = false; } aux = i + 1; i = son.toDOT(fr, redSon, ++i); fr.append(me + " -> " + aux + ";\n"); } return i; }