0
我正在C++中使用遞歸構建二叉樹,我無法弄清楚爲什麼我不能返回一個項目,這可能是一個簡單的事情,我過去看,但我一直在看它很長時間我無法弄清楚。二叉樹查找
BST::Item * BST::lookup(Key k)
{
return(lookupRec(k, root));
}
BST::Item * BST::lookupRec(Key k, Node* n)
{
if (k == n->key)
{
return n->item; //problem is here
}
else if (k > n->key)
{
lookupRec(k, n->rightChild);
}
else if (k < n->key)
{
lookupRec(k, n->leftChild);
}
else
{
return nullptr;
}
}
添加一些上下文項是using Item = std::string;
所以我所說的查找與關鍵,它調用工人功能,應該返回項目時密鑰和根密鑰匹配,但不會返回N- >項目,因爲它說,有來自BST ::項目BST ::項目*
任何幫助,將不勝感激沒有合適的轉換,得益於
那麼錯誤很明顯,不是嗎? 'n-> item'包含一個'std :: string',你試圖返回一個指向'std :: string'的指針。 (在那個筆記上,*爲什麼*你想要返回一個指向'std :: string'的指針?爲什麼不返回一個引用呢?) – UnholySheep
編譯你的程序並啓用所有警告。並把它們視爲錯誤。查找功能中有多少分支機構?有多少人以退貨聲明結束? – StoryTeller