我试图在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)返回节点* 问题是什么? 感谢!!!
答案 0 :(得分:1)
据我了解,在您当前的实现中,您声明了两个名为Node
的类;一个属于全局范围,而另一个属于类Tree
的范围。这可以通过仅使用一个类来解决。