在字符串的二叉搜索树中搜索子字符串 - C++

Searching for substring in a Binary Search Tree of strings - C++

本文关键字:字符串 搜索 C++ 搜索树      更新时间:2023-10-16

我已经在我的二叉搜索树中插入了一串日期。现在,当用户输入一年时,我想检查BST中的日期中是否存在这一年,如果是,我会执行一些操作。问题是我的 BST 的 searchTree 方法返回一个布尔值,所以我不确定如何在我的 BST 中搜索子字符串,或者是否可能。 我搜索一个子字符串,因为我不需要日期或月份。我只需要检查我的 BST 中是否存在这一年。一些建议?

到目前为止我做了什么:

Bst<string> dateStrings;
multimap<Date, float> mapOption2;
for(int i = 1; i < SIZE; i++)
{
stringstream converter;
string convertedDate;
converter << windlog[i].d;
converter >> convertedDate;
//cout << "After conversion: " << convertedDate << endl;
dateStrings.insertNodeRecursive(convertedDate);
mapOption2.insert(make_pair(windlog[i].d, windlog[i].temp.GetTemperature()));
}
if(dateStrings.searchTreeRecursive(strcmp)) // This is where I am stuck.

我的搜索树方法返回一个布尔值,它的参数只是任何类型的变量,在这种情况下它应该是一个字符串。

您可以创建一对 int 和字符串,其中 int 将是您的年号,字符串将是您的日期字符串。创建每个对后,将完整的对插入 BST 中。因此,现在,当一年作为函数的输入时,您可以找到该年份是否存在于包含每个节点的BST中。