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; }
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(); }