我已经在我的二进制搜索树中插入了一串日期,现在当用户输入一个年份时,我想检查这个年份是否存在于我的日期中。现在当用户输入一个年份时,我想检查这个年份是否存在于我的BST中的日期中,如果存在,我就执行一些操作。问题是我的BST树的searchTree方法返回的是一个bool,所以我不知道如何在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和string的对子,其中int将是你的年号,string将是你的日期字符串。一旦你创建了每个对,将完整的对插入到你的BST中。所以,现在当一个年份作为输入到你的函数中时,你可以找到这个年份是否存在于你的BST中,它包含了每个节点作为一个对。