我正在尝试为二叉树实现构建一个节点类。这是 Node 类的头文件:
class Node {
public:
Node();
Node(int value);
void setParent(Node& parent);
void setLeftChild(Node& child);
void setRightChild(Node& child);
void setValue(int value);
void setIndex(int index);
void setHeight(int height);
private:
int value;
Node& parent;
Node& leftChild;
Node& rightChild;
int height;
int index;
};
现在,我要编写上面声明的构造函数 Node(int value)。 我应该如何初始化 leftChild、rightChild、parent 字段?它们也是节点,所以我想对它们调用默认构造函数,但它似乎不起作用。 Node::Node(int value) : value(value), parent(), leftChild(), rightChild(){
编译器说“对‘Node’类型的引用需要一个初始化器”
谢谢。
最佳答案
您应该使用指定节点父节点的构造函数: 节点(节点*父级,整数值); 当您创建根节点时,您只需使用 NULL 作为参数调用此构造函数。 所有对父项和子项的引用都应该是指针。
关于c++ - C++ 中的二叉树节点类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17535082/