この行全体のような酵素のリストをインポートするバイナリツリーを作成しています
"AarI/CACCTGCNNNN'NNNN/'NNNNNNNNGCAGGTG//"
挿入は正常に機能し、ツリーに保存されているものを表示すると、ファイルからコンテンツが正しくインポートされたことが示されますが、保存されている各行を検索すると、最後にインポートされた挿入を除いて見つからないという戻り値が返されます。挿入が「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;
}