Esempio n. 1
0
int TrieTree::search(const string& str)
{
    TrieNode* temp = root;
    int len = str.length();
    for (int i = 0; i < len; i++)
    {
        temp = temp->findnode(str[i]);
        if (temp == 0)
            return 0;
    }
    return temp->count;
}
Esempio n. 2
0
void TrieTree::insert(const string& str)
{
    TrieNode* temp = root;
    TrieNode* buf = 0;
    int len = str.length();
    string tmpstr;
    for (int i = 0; i < len; i++)
    {
        buf = temp;
        temp = temp->findnode(str[i]);
        if (temp == 0)
        {
             tmpstr = str.substr(i);
             int len2 = tmpstr.length();
             for (int j = 0; j < len2; j++)
                 buf = buf->insertnode(tmpstr[j]);
             buf->add();
             return;
        }
    }
    temp->add();
}