问题描述
void insertBST(BST &T,int newKey){
Node *q = nullptr;
Node *p = &T.root;
while (p != nullptr){
int i = 0;
if (newKey == p->key){
return;
}
q = p; // **q indicates parent node of P**
if (newKey < p->key){
p = p->leftNode;
}
else {
p = p->rightNode;
}
}
Node newNode = getNode(); // **dont kNow why newNode's addr is same with q's**
newNode.key = newKey;
newNode.leftNode = nullptr;
newNode.rightNode = nullptr;
if (T.root.key == 0){
T.root = newNode;
}
else if (newKey < q->key){
q->leftNode = &newNode;
}
else if (newKey > q->key) {
q->rightNode = &newNode;
}
return;
}
我正在尝试使用c ++实现二进制搜索树,但是我仍然坚持实现插入。 newNode'地址与指针'q'的地址相同。我不知道我做错了什么。我想念什么吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)