import java.util.*;

public class BTree implements BTreeInterface
{
   private Object data;
   private BTree left, right;   
   
   // constructor
   public BTree(Object init, BTree lft, BTree rgt)
   {
      data = init;
      left = lft;
      right = rgt;
   }       
   // get the data stored in the current node
   public Object getData( )   
   {
      return data;
   }

   public BTree getLeft( )
   {
      return left;                                               
   } 
   
   public BTree getRight( )
   {
      return right;                                               
   } 


   public void setData(Object obj)   
   {
      data = obj;
   }                                                               
   

   public void setLeft(BTree lft)
   {                    
      left = lft;
   }

   public void setRight(BTree rgt)
   {                    
      right = rgt;
   }  

   Vector v = new Vector();
   public ListIterator preorderTraversal()
   {
      preorder(this);
      return v.listIterator();
   }

   private void preorder(BTree bt)
   {
      if ( bt == null) {// empty case
	 return;
      } // end of if ()
 
      //nonempty case
      v.add(bt.getData());
      preorder(bt.getLeft());
      preorder(bt.getRight());
   }
      
}
           



