我想爲二叉搜索樹製作寬度優先的搜索函數,但我似乎無法使其工作。任何指針將不勝感激!二進制搜索樹的寬度優先搜索
template <class T>
bool BST<T>::displayBfs(T searchKey, BST<T> *node)
{
BST<T> *tmp = node;
queue <int> queue;
queue.push(node->mData);
if (node == NULL)
{
return false;
}
while (!queue.empty())
{
queue.pop();
if (tmp->mData == searchKey)
return true;
else
{
if(tmp->mLeft != NULL)
queue.push(tmp->mLeft->mData);
if(tmp->mRight != NULL)
queue.push(tmp->mRight->mData);
}
}
return false;
}
哪裏定義了'tmp'? – codaddict
任何症狀?它是編譯還是運行時錯誤? – Lazin
對不起,我忘了我意外刪除了那條線。現在定義tmp。 這是一個運行時錯誤。它只是陷入循環。 –