我正在构建一个二叉搜索树,以下是添加函数:
void BinaryTree::add(int value, Node*& node, Node*& parent) {
if(!node) {
node = new Node(value);
node->parent = parent;
}
else if(node->key < value)
this->add(value, node->rightNode, node);
else if(node->key > value)
this->add(value, node->leftNode, node);
}
Run Code Online (Sandbox Code Playgroud)
我想为最后两个(节点,父级)参数设置默认参数:
void add(int value, Node*& node = root , Node*& parent = nullptr);
Run Code Online (Sandbox Code Playgroud)
其中 root 是类的一个字段。
这似乎不适用于这两种情况。我该如何实施它,这里有什么问题?谢谢!
您无法初始化对 的引用nullptr。它们必须是有效的对象。要创建root默认对象,您可以添加具有相同名称的新函数
void BinaryTree::add(int value) {
Node* emptyParent = nullptr;
add(value, root, emptyParent);
}
Run Code Online (Sandbox Code Playgroud)