BST上的c ++错误

时间:2016-03-17 08:48:04

标签: c++ binary-search-tree

我试图在cpp上创建BST 我在类Tree中完成了类Node,因为它是合乎逻辑的。 头:

class Node;
class Tree
{
public:
    Node* root;
    Tree();
    Tree(int val);
    void insert(int val);
    class  Node
    {
    public:
        Node();
        Node(int val);
        Node* right;
        Node* left;
        int val;
    };

};

implamation:

Tree::Tree()
{
    this->root = NULL;

}
Tree::Node::Node()
{

}
Tree::Node::Node(int val)
{
    this->val = val;
    this->left = NULL;
    this->right = NULL;
}
void Tree::insert(int val)
{

    this->root = new Node(3);

}

我的错误

this->root = new Node(3);


IntelliSense: a value of type "Tree::Node *" cannot be assigned to an entity of type "Node *"   
error C2440 : '=' : cannot convert from 'Tree::Node *' to 'Node *'  

我做错了什么? root此节点* 和新的Node(3)返回节点* 问题是什么? 感谢!!!

1 个答案:

答案 0 :(得分:1)

据我了解,在您当前的实现中,您声明了两个名为Node的类;一个属于全局范围,而另一个属于类Tree的范围。这可以通过仅使用一个类来解决。