【发布时间】:2015-08-24 12:55:51
【问题描述】:
所以我想在二叉树中找到一个节点的父节点。 假设我通过一个文本文件在树中输入了 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,程序停止运行。
您知道是什么导致了这个错误吗?感谢阅读。
【问题讨论】:
-
您确定您的树结构良好吗?使用调试器来挖掘问题。
标签: c++ binary-search-tree nodes