//用类,或者结构体定义都行
class trie
{
public:
trie* next[26];
int num;
int value;
trie()
{
for(int i=0;i<26;i++)
next[i]=0;
value=0;//记录是不是一个单词
num=0;//记录单词出现的次数
}
}root;
//插入:
void insert(trie* p,char* s)
{
p=&root;
int k=0;
while(s[k]!='\0')
{
if(!p->next[s[k]-'a'])
p->next[s[k]-'a']=new trie;
p=p->next[s[k]-'a'];
p->num++;
k++;
}
p->value=1;
}
//查找
int find(trie* p,char* s)
{
p=&root;
int k=0;
while(s[k]!='\0'&&p->next[s[k]-'a'])
{
p=p->next[s[k]-'a'];
k++;
}
if(s[k]=='\0')
return p->num;
return 0;
}
Trie模板