二叉树搜索不起作用
Binary Tree Search Not Working?
我正在创建一个二叉树,它导入了一整行酶的列表
插入"AarI/CACCTGCNNNN'NNNN/'NNNNNNNGCAGGTG//"
工作正常,显示树中存储的内容显示它已正确导入文件的内容,但是在搜索存储的每一行时,我得到的返回是 未找到 除了最后一个导入的插入之外,这是唯一返回 true 的插入是"Zsp2I/ATGCA'T//"不确定搜索功能出了什么问题?
template <class T>
typename Tree<T>::node *Tree<T>::searchTree(T key)
{
cout << "searching for...key: " << key << endl;
return search(key, root);
}
template <class T>
typename Tree<T>::node *Tree<T>::search(T key, node*leaf)
{
if(leaf != NULL)
{
// cout << "check passed for search!" << endl;
if(key == leaf->keyValue)
{
cout << "Found!" << endl;
return leaf;
}
if(key < leaf->keyValue)
{
return search(key, leaf->left);
}
else
{
return search(key, leaf->right);
}
}
else
{
cout << key << " Not found...!" << endl;
return NULL;
}
}
修复了问题,由于导入文件时不可见字符而导致的搜索问题。使用涉及查找子字符串的搜索方法进行修复。
typename Tree<T>::node *Tree<T>::search(T key, node*leaf)
{
T DATA;
if(leaf != NULL)
{
DATA = leaf->keyValue;
if(DATA.find(key) != std::string::npos)
{
cout << "Found!" << key << endl;
return leaf;
}
从文件导入行可能会导致导入不可见字符,这将留下相同值的字符串比较以返回 false。对于我的搜索函数,解决此问题的一种方法是在给定字符串内搜索,并将 string1.find(string2) 与返回找到进行比较。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 为什么二进制搜索在我的测试中不起作用
- 简单的二分搜索对我不起作用。我正在尝试从文本文件中搜索单词
- C++ Eclipse:二叉搜索树节点>数据=变量似乎不起作用
- 在C++中实现二叉搜索树,搜索不起作用.尝试打印节点的元素会导致输出崩溃
- 为什么此基准代码用于线性和二进制搜索不起作用
- 二进制搜索功能不起作用
- 二叉搜索树<<运算符重载不起作用
- 使用字符"-"不起作用的 SQlite3 C 库进行全文搜索
- 常量 T * 搜索 ( 常量 T &) 返回不起作用
- 我需要在C++中构建一些单词搜索功能,但似乎它不起作用.任何线索
- 二叉树搜索不起作用
- C++ 二叉搜索算法不起作用
- 在二叉搜索树中插入不起作用
- 二进制搜索树递归插入导致堆栈溢出,迭代插入不起作用
- 二叉搜索树不起作用
- 二进制搜索树--删除函数不起作用
- 哈希表搜索功能在某些情况下不起作用
- 递归搜索不起作用