【发布时间】:2020-05-03 13:12:27
【问题描述】:
我想用 C++ 创建 BST。当我尝试将指针分配给新节点时 - 它不会改变。函数调用后它仍然具有随机值。可以按照我的方式去做吗?
struct wezel {
int value;
wezel *l_val;
wezel *r_val;
wezel(int aValue) {
value = aValue;
l_val = NULL;
r_val = NULL;
}
};
struct tree {
wezel *root;
tree(wezel *aNode) {
root = aNode;
}
};
void addNode(int aValue, wezel aNode) {
if(aValue < aNode.value) {
if(aNode.l_val == NULL) {
wezel pt = wezel(aValue);
wezel *point = &pt;
aNode.l_val = point; //do not work
} else {
return addNode(aValue, *aNode.l_val);
}
} else if(aValue > aNode.value) {
if(aNode.r_val == NULL) {
wezel pt = wezel(aValue);
wezel *point = &pt;
aNode.r_val = point; //do not work
} else {
return addNode(aValue, *aNode.r_val);
}
}
};
【问题讨论】:
-
point指向pt,但pt在if块结束后不存在。l_val现在指向wezel曾经存在但不再存在的位置。