c++ - C++ 中的二叉树节点类

标签 c++ binary-tree

我正在尝试为二叉树实现构建一个节点类。这是 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/

相关文章:

c++ - CMake : Flex custom_command never called

c++ - 将 Int 指针转换/类型转换为 char 指针,但获取 ascii 字符?

c++ - 从没有锁的多个线程读取动态/变化的数据?它会导致崩溃吗?或者只是损坏的变量?

c++ - 解释这个c++随机

Java面试题: get entry by two fields in O(log(n)) time

c++ - 将文本文件读入结构并显示数组

list - BST-最小方案

python - 在Python中绘制格子树

c - C 中的二叉树 - 多个数据

algorithm - 通过树旋转将一棵二叉树转换为另一棵二叉树