public class Trees4
//intro to trees. Uses clearer notation
{  public static void main(String[] as)
   {  Tree t1 = new Tree();
      t1.createTree();
	  t1.printInfix(); 
	  System.out.println();
   }
}
   
   class Tree
   { Node root;
   
     private Node subTree(char item)
     {  Node t = new Node();
	    t.left = null;
		t.right = null;
		t.data = item;
		return t;
     }
	 
	 private void leftTree(Node p, char item)
	 {	p.left = subTree(item);
	 }
	 
	 private void rightTree(Node p, char item)
	 { p.right = subTree(item);
	 }
	 
	 public void printInfix()
	 { Node t = this.root;
	   infix(t);
	   
	 }	 
	 
	 private void infix(Node t)
	 { if (t != null)	 	 
	   { infix(t.left);
	     System.out.print( t.data);
		 infix(t.right);
	   }
	 }	 	 
	 
	 public void createTree()
	 { root = subTree('f');
	   rightTree(root, 'r');
	   leftTree(root, 'a');
	   leftTree(root.right, 'h');
	 } 
	 
   
     private class Node
     { public char data;
	   public Node left, right;
     }
   }
  
