gpt4 book ai didi

c++ - 二叉搜索树无效使用数据成员

转载 作者:太空宇宙 更新时间:2023-11-04 13:59:51 24 4
gpt4 key购买 nike

当我将非静态数据成员作为默认参数写入以下函数时,我的根变量的非静态数据成员使用无效。

class Leaf {
Item* data;
Leaf* parent;
Leaf* left;
Leaf* right;
friend class binaryTree;

Leaf(Item* data, Leaf* parent = 0, Leaf* left = 0, Leaf* right = 0) :
data(data), parent(parent), left(left), right(right) {
}
~Leaf() {
delete left;
delete right;
}
};

class binaryTree {
Leaf* root;
public:
binaryTree() :
root(0) {
}

~binaryTree() {
delete root;
}

void insert(Item* data, Leaf* &node = root) {
if (!node) {
node = new Leaf(data);
} else {
if (data->neptun < node->data->neptun) {
insert(data, node->left);
} else {
insert(data, node->right);
}
}
}

void listForward(Leaf* node = root) {
if (!node) {
listForward(node->left);
cout<<" "<<node->data->neptun;
listForward(node->right);
}
}
};

我该如何解决这个问题?我不喜欢做一个变通方法,比如制作这些私有(private)函数并通过另一个只有 root in 参数的函数调用它们。提前致谢。

最佳答案

只需删除默认参数 =root 并将这两个额外的函数添加到您的 bynaryTree

void insert(Item* data) {
insert(Item* data, root);
}
void listForward() {
listForward(root);
}

关于c++ - 二叉搜索树无效使用数据成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19753695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com