@@ -0,0 +1,736 @@
+import java.util.HashSet;%0Aimport java.util.Iterator;%0Aimport java.util.Set;%0A%0A%0Apublic class TreeNode implements Iterable%3CTreeNode%3E %7B%0A%0A%09  private Set%3CTreeNode%3E children;%0A%0A%09  private String name;%0A%09  %0A%09  %0A%09  public TreeNode(String name) %7B%0A%09%09this.name = name;%0A%09    children = new HashSet%3CTreeNode%3E();%0A%09  %7D%0A%09  %0A%09  public String getName() %7B%0A%09%09  return name;%0A%09  %7D%0A%0A%09  public boolean addChild(TreeNode n) %7B%0A%09    return children.add(n);%0A%09  %7D%0A%0A%09  public boolean removeChild(TreeNode n) %7B%0A%09    return children.remove(n);%0A%09  %7D%0A%0A%09  public Iterator%3CTreeNode%3E iterator() %7B%0A%09    return children.iterator();%0A%09  %7D%0A%09%09%0A%09  public static void main(String%5B%5D argv) %7B%0A%09%09  TreeNode node1 = new TreeNode(%22Test%22);%0A%09%09  System.out.println(node1.getName());%0A%09  %7D%0A%09  %0A%7D%0A

Create TreeNode.java