1  /**
  2     This class demonstrates the advanced techniques in BinarySearchTree2.
  3  */
  4  public class TreeTester2
  5  {
  6     public static void main(String[] args)
  7     {
  8        BinarySearchTree2<Student> students = new BinarySearchTree2<Student>();
  9        // Can form BinarySearchTree2<Student> even though Student
 10        // implements Comparable<Person> and not Comparable<Student>
 11  
 12        students.add(new Student("Romeo", "Art History"));
 13        students.add(new Student("Juliet", "CS"));
 14        students.add(new Student("Tom", "Leisure Studies"));
 15        students.add(new Student("Diana", "EE"));
 16        students.add(new Student("Harry", "Biology"));
 17        
 18        class PrintVisitor implements Visitor<Object>
 19        {
 20           public void visit(Object data)
 21           {
 22              System.out.println(data);
 23           }
 24        }
 25  
 26        // Can pass a Visitor<Object>, not just a Visitor<Student>
 27        students.inorder(new PrintVisitor());
 28     }
 29  }