class Node{
private:
string data;//注意这里的data存储的是节点的对应的value,而不是key
map<string, Node> mp;
public:
void insert(const string &str, string data) {
Node *curr = this;
stringstream ss;
ss <<str;
string word;
while(ss >> word)
curr = &(curr->mp[word]);
curr->data = data;
}
string search(const string &str) {
Node *curr = this;
stringstream ss;
ss <<str;
string word;
map<string,Node>::iterator it;
while(ss >> word) {
it = curr->mp.find(word);
if(it==curr->mp.end())
return "";
curr = &(it->second);
}
return curr->data;
}
};
简单的trie实现
最新推荐文章于 2023-08-29 15:57:05 发布