所以我想在二叉树中找到节点的父节点。 假设我通过一个文本文件在树中输入了30,15,17,45,69,80,7。在二叉搜索树中找到节点的父节点
树应该是
30
15 45
7 17 69
80
这里是我的代码:
Node* BST::searchforparentnode(Node* pRoot, int value)
{
if(pRoot->pleft == NULL && pRoot->pright == NULL)
return NULL;
if(pRoot->pleft->value == value || pRoot->pright->value == value)
return pRoot;
if(pRoot->value > value)
return searchforparentnode(pRoot->pleft,value);
if(pRoot->value < value)
return searchforparentnode(pRoot->pright,value);
}
在这种情况下,我没有考虑到根如果用户输入的值节点。
事情是,当我输入15,17,7,根节点左分支的所有值,它出来了。但是当我想从右分支(69,80)中找到父节点的值,除了45以外,程序停止运行。
任何有关造成这种错误的家伙的想法?谢谢阅读。
您确定您的树构造良好吗?使用调试器深入研究这个问题。 – Mat