c ++错误C2664无法转换参数1

时间:2015-01-17 19:50:21

标签: c++

我正在创建一个二叉树,我正在尝试实现一个用于创建该树的函数。这就是树的每个成员的代码

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;”

我该怎么办?

0 个答案:

没有答案