【发布时间】:2014-02-19 23:06:25
【问题描述】:
我的搜索功能,我已经实现了某种作品。当我搜索一个不存在的值时,搜索功能会找到并返回 false。当我搜索作为根的值时,它工作正常并返回 true。问题是当我搜索树中已经存在的根以外的值但它返回错误时。关于我做错了什么有什么想法吗?
template <class Comparable>
bool BinarySearchTree<Comparable>::findValue(const Comparable& value){
if(root->element == value){
return true;
}
if(value > root->element)
{
if(root->right != NULL)
{
root->right->findValue(value);
}
else
{
return false;
}
}
if(value < root->element)
{
if(root->left != NULL)
{
root->left->findValue(value);
}
else
{
return false;
}
这些是我的私人数据成员,不能以任何方式更改。
private:
struct BinaryNode
{
Comparable element;
BinarySearchTree<Comparable> *left;
BinarySearchTree<Comparable> *right;
};
BinaryNode *root;
};
【问题讨论】:
标签: c++ search root binary-search-tree