字典树是保存字典的非常好的手段。
struct node{
node* next[26]; int v;
node(){
v = 1;
for(int i = 0; i < 26; ++i)
next[i] = NULL;
}
};
struct Trie{
node* root;
Trie(){root = NULL;}
void inserts(char str[]){
int len = strlen(str);
if(!root)
root = new node;
node* now = root;
for(int i = 0; i < len; ++i){
int num = str[i]-'a';
if(now->next[num] == NULL)
now->next[num] = new node;
else
++((now->next[num])->v);
now = now->next[num];
}
}
int searchs(char str[]){
int len = strlen(str);
node* now = root;
for(int i = 0; i < len; ++i){
int num = str[i]-'a';
if(now->next[num] == NULL)
return 0;
now = now->next[num];
}
return now->v;
}
};