import java.util.Vector;
import java.util.Enumeration;

public class RecursiveTree {	
	 private TreeNode root; // root node in our recursive tree

     // constructor
     public RecursiveTree(int levels, int branching) {
            // create the root node
            root = new TreeNode(levels);
            CreateTree(levels, branching, root);
            
     }
     
     private void CreateTree(int levels, int branching, TreeNode root) {      	
     		if (levels > 1 ) {
      			for (int i=0; i<branching; i++) {
      				TreeNode child = new TreeNode(levels-1);
      				CreateTree(levels-1, branching, child);
      				root.addChild(child);	
      			}
            }      
      } 
      
      public TreeNode getRoot() {
      		return root;
      } 
      
      public String toString() {
      		return root.toString();
      } 

      public static void main(String args[]) {
      		int levels = 3;  int branching = 3;
            RecursiveTree test = new RecursiveTree(levels, branching);
            System.out.println("This tree is:  " + test.toString());          
      }
}

 

 
