我想实现一个二叉树,其中每个节点都包含left
和right
子树。这是我的类(class)样子:
class KDTree
{
public:
KDTree(...);
~KDTree();
private:
LatLng element; // The value of the node
KDTree left; // The left sub-tree
KDTree right; // The right sub-tree
};
然后我的构造函数如下所示:
KDTree::KDTree(...)
{
value = ...;
if(not_finished)
{
left = KDTree(...);
right = KDTree(...);
}
else
{
left = NULL; // how to implement this properly ?
right= NULL; // how to implement this properly ?
}
}
如果我尝试像上面显示的那样放入
NULL
,则编译器会抱怨left
和right
属性未初始化。如何正确执行此操作? 最佳答案
左右应该是这样的KDTree指针:KDTree *左,KDTree *右。然后Null将按使用方式工作
另外,在第一个if语句中,您可能需要更改
left = KDTree (...);
right = KDTree (...);
至
left = new KDTree (...);
right = new KDTree (...);
关于c++ - 在C++中实现树,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36901110/