我正在创建一个二叉树,我正在尝试实现一个用于创建该树的函数。这就是树的每个成员的代码
template <typename T>
struct Node
{
T data;
Node* left;
Node* right;
Node()
{
data = NULL;
left = NULL;
right = NULL;
}
};
“BinaryTree”类只有一个名为“root”的成员,其类型为Node,我的创建树的函数是:
void CreateTree(istream &in)
{
char help;
int data;
in >> help;
while (help == 'y')
{
in >> data;
addLeaf(root, data);
in >> help;
}
}
和addLeaf函数是:
void addLeaf(Node<T>* &nod, int data)
{
if (nod == NULL)
{
nod = new Node<T>();
nod->data = data;
}
else if (data < nod.data) addLeaf(nod->left, data);
else addLeaf(nod->right, data);
}
结果是:
错误C2664:'void BinaryTree :: addLeaf(Node *&amp;,int)':不能 将参数1从“节点”转换为“节点*&amp;”
我该怎么办?