public class HuffTest
//Tests printTheCode & decodeString in project# 3 format
{  public static void main(String[] as)
   {  Tree t1 = new Tree();
      t1.createTree();
	  t1.printTheCode();
	  t1.decodeString("huffy.dat");
   }
}
   
 class Tree
 {   TreeNode root;
   
     public void decodeString(String file)
     {

     }
	
     private TreeNode subTree(String item)
     {  TreeNode t = new TreeNode();
	    t.left = null;
		t.right = null;
		t.data = new HuffRecord();
		//t.data = new ...; needed to prevent null pointer exception
		t.data.letter = item;
		return t;
     }
	 
	 private void leftTree(TreeNode p, String item)
	 {	p.left = subTree(item);
	 }
	 
	 private void rightTree(TreeNode p, String item)
	 { p.right = subTree(item);
	 }

	 public void createTree()
	 { root = subTree("$");
	   leftTree(root, "$"); 
	   leftTree(root.left, "$"); 
	   leftTree(root.left.left, "a"); 
	   rightTree(root.left.left,"b" );
	   rightTree(root.left, "c");
	   rightTree(root , "$");
	   leftTree(root.right, "e");
	   rightTree(root.right , "$");	
	   leftTree(root.right.right, "f");
	   rightTree(root.right.right, "g");	     
	 } 	 
   
   	 public void printTheCode()
     //prints the Huffman code for each leaf on the tree  
     { String s = "";//null string
       printCode(root, s);
     }	 
   
   private void printCode(TreeNode tree, String s)
   {//please complete the code
   }
   
	 private class HuffRecord//defines the data frequency record
    {  String letter; 
	   int freq;
    }
	
	private class TreeNode//defines the treelets comprising the list
   {  HuffRecord data;
   	  TreeNode left, right;
   }
 }
   

