所以我想在二叉樹中找到節點的父節點。 假設我通過一個文本文件在樹中輸入了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