It's nice to hear that about the program which you can't compile w/o errors ;)...
Now look at the class BSTree (refactored) interface:
/* Not implemented yet:
void insert(Contributor InData);
That's all. In other words you can create new BSTree objects then insert Contributor class objects into them. Also you can assign one BSTree object to the other by the default (compiler generated, data member by data member) assignment operator but the only problem is: no data members in this BSTree class at all!
So when you write in the main function:
you want to get unknown result from an undefined operator <<:
ostream& operator <<(ostream&,const BSTree&);
See Contributor class for example. Look at BSTree declaration again. You promise to implement three member functions to print BSTree. Where are these functions? How binary search tree object can print anything when it's an empty object without data members?
It seems you don't understand your assignment.
Try again then come back...