
/**
 * SBTreeApp.java
 *
 *
 * Created: Sun Oct 20 23:44:50 2002
 *
 * @author <a href="mailto:bina@cse.buffalo.edu "</a>
 * @version
 */

public class SBTreeApp {
public static void main (String[] args) {
      //generate the subtrees representing all the operands and
      // operators
    SBVisitor visitor = new SBSizeVisitor();

   SBTree A = new SBTree(new Character('A'));
   SBTree B = new SBTree(new Character('B'));
   SBTree C = new SBTree(new Character('C'));
   SBTree D = new SBTree(new Character('D'));
   SBTree op1 = new SBTree(new Character('+'));
   SBTree op2 = new SBTree(new Character('+'));
   SBTree op3 = new SBTree(new Character('*'));
      
      SBTree rightSubTree;
      SBTree leftSubTree;

      // build the left right sub tree
      op3.setLeft(C);
      op3.setRight(D);
      rightSubTree = op3;

      // build the right sub tree

      op1.setLeft(A);
      op1.setRight(B);
      leftSubTree = op1;

      // build the main tree

      op2.setLeft(leftSubTree);
      op2.setRight(rightSubTree);
      
      SBTree expTree = op2;
      System.out.print("Number of nodes in the tree is: ");

      System.out.println(expTree.acceptVisitor(visitor, null));
}
}// SBTreeApp

