My code is similar to the one given in this thread.
template<class T>
class BinarySearchTree
{
private:
struct tree_node
{
tree_node* left;
tree_node* right;
T data;
tree_node( const T & thedata, tree_node * l = NULL, tree_node * r = NULL )
: data( thedata ), left( l ), right( r ) { }
};
tree_node* root;
public:
BinarySearchTree()
{
root = NULL;
}
}
In my main program, there a need for this:
I have two trees:
BinarySearchTree<T> tree1;
BinarySearchTree<T> tree2;
I need to create a new tree with:
root as an object of T and left = tree1 and right = tree2;
To do this I tried to add this constructor:
BinarySearchTree(const T& x, tree_node* l, tree_node* r);
and trying to call from main:
BinarySearchTree<T> newTree(T object,tree1,tree2);
I understand this won't work but what should I do?
Compile Error:
error C2664: 'BinarySearchTree::BinarySearchTree(const T &,BinarySearchTree::tree_node *,BinarySearchTree::tree_node *)' : cannot convert parameter 2 from 'BinarySearchTree *' to 'BinarySearchTree::tree_node *'