Binary Search Tree

you will complete the  Binary Search Tree
that you started in the Binary Search Tree lab
there are new runnable examples in the hw12 directory that show they complete functionality other wise use the files from the lab

             Binary Search Tree
  ===============================================
  i  Insert a value into the tree
  c  Does the tree contain a specific value
  d  Delete a value from the tree
  y  Print the values of the tree in pre order
  p  Print the values of the tree in order
  z  Print the values of the tree in post order
  m  Show this menu
  x  Exit
  ===============================================
  Enter selection:

the output when testing should match that of the runable examples


MAKE sure you output matches the examples when you redirect in the testfiles
MAKE sure your ToString output can be used on the viewlist page

 viewtree 

YOU MUST:
1. make it a template class
2. put all your function bodies inside the class
3. make your Node an inner class
4. copy over the testfiles and use ALL of them to test your code
5. your code should have no compilation warnings
6. make your code such that no combination of function calls will result in a seg fault, throw exceptions when needed
7. do the standard file logging
8. your code should have no memory leaks, check with valgrind 
9. your ouput must work with the viewlist page
10. your insert must not be an AVL insert


to test for leaks

@sleipnir> make clean
@sleipnir> make LOGLEVEL=0
@sleipnir> valgrind --leak-check=full ./runme_int

look for 

==12988== 
==12988== All heap blocks were freed -- no leaks are possible
==12988==