【发布时间】:2011-05-11 17:45:01
【问题描述】:
我的代码与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;
}
}
在我的主程序中,需要这样:
我有两棵树:
BinarySearchTree<T> tree1;
BinarySearchTree<T> tree2;
我需要创建一个新树:
root 作为 T 的对象,left = tree1 and right = tree2;
为此,我尝试添加此构造函数:
BinarySearchTree(const T& x, tree_node* l, tree_node* r);
并尝试从 main 调用:
BinarySearchTree<T> newTree(T object,tree1,tree2);
我知道这行不通,但我该怎么办?
编译错误:
错误 C2664: 'BinarySearchTree::BinarySearchTree(const T &,BinarySearchTree::tree_node *,BinarySearchTree::tree_node *)' : 无法将参数 2 从 'BinarySearchTree *' 转换为 'BinarySearchTree::tree_node *'
【问题讨论】:
标签: c++ data-structures binary-tree