在字符串的二进制搜索树中搜索子串 - C++。

问题描述 投票:0回答:1

我已经在我的二进制搜索树中插入了一串日期,现在当用户输入一个年份时,我想检查这个年份是否存在于我的日期中。现在当用户输入一个年份时,我想检查这个年份是否存在于我的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.

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

c++ string search binary-tree
1个回答
0
投票

你可以创建一个int和string的对子,其中int将是你的年号,string将是你的日期字符串。一旦你创建了每个对,将完整的对插入到你的BST中。所以,现在当一个年份作为输入到你的函数中时,你可以找到这个年份是否存在于你的BST中,它包含了每个节点作为一个对。

© www.soinside.com 2019 - 2024. All rights reserved.