/**
 * Driver that tests BinaryTree and BinarySearchTree methods.
 *
 *   @author Dave Reed
 *   @version 10/9/18
 */
public class BinaryTreeDriver {
    public static void main(String[] args) {
        BinaryTree<Integer> tree = new BinaryTree<Integer>();
        tree.add(7);
        tree.add(2);
        tree.add(12);
        tree.add(1);
        tree.add(5);
        tree.add(6);
        tree.add(99);
        tree.add(88);

        System.out.println(tree);
        System.out.println("size = " + tree.size());
        System.out.println(tree.contains(2) + " " + tree.contains(5)
                                            + " " + tree.contains(8));

        tree.remove(2);
        System.out.println(tree);
        System.out.println("size = " + tree.size());
        System.out.println(tree.contains(2) + " " + tree.contains(5)
                                            + " " + tree.contains(8));
        
        ////////////////////////////////////////////////////////////////////
        
        BinarySearchTree<Integer> bst = new BinarySearchTree<Integer>();
        bst.add(7);
        bst.add(2);
        bst.add(12);
        bst.add(1);
        bst.add(5);
        bst.add(6);
        bst.add(99);
        bst.add(88);

        System.out.println(bst);
        System.out.println("size = " + bst.size());
        System.out.println(bst.contains(2) + " " + bst.contains(5)
                                            + " " + bst.contains(8));

        bst.remove(2);
        System.out.println(bst);
        System.out.println("size = " + bst.size());
        System.out.println(bst.contains(2) + " " + bst.contains(5)
                                            + " " + bst.contains(8));
        
        System.out.println("max value = " + bst.max());
    }    
}
