@@ -0,0 +1,800 @@
+import java.util.*;%0A%0Apublic class Node %7B%0A%09Node parent;%0A%09ArrayList%3CNode%3E children;%0A%09Variable data;%0A%09String classification;%0A%09boolean label;%0A%09double prob;%0A%09%0A%09public Node(Variable data) %7B%0A%09%09this.data = data;%0A%09%09children = new ArrayList%3CNode%3E();%0A%09%7D%0A%09%0A%09public Node(String classification) %7B%0A%09%09this.classification = classification;%0A%09%09children = new ArrayList%3CNode%3E();%0A%09%7D%0A%09%0A%09public void add(boolean label, Node n) %7B%0A%09%09children.add(n);%0A%09%09n.label = label;%0A%09%7D%0A%09%0A%09public Node get(boolean label) %7B%0A%09%09for (Node n : children) %7B%0A%09%09%09if (label == n.label) %7B%0A%09%09%09%09return n;%0A%09%09%09%7D%0A%09%09%7D%0A%09%09return null;%0A%09%7D%0A%09%0A%09public String toString() %7B%0A%09%09String toStr = %22%22;%0A%09%09if (classification != null) %7B%0A%09%09%09return classification + %22 %22;%0A%09%09%7D%0A%09%09for (Node n : children) %7B%0A%09%09%09toStr += n.toString();%0A%09%09%7D%0A%09%09return toStr + this.data.toString();%0A%09%7D%0A%7D%0A

Create Node.java