字典树 模板
View Code
class trie{
public:
int num;
trie *child[26];
trie()
{
num=0;
memset(child,0,sizeof(child));
}
}root;
int insert(char *s)
{
class trie *cur=&root;
int len=strlen(s);
for(int i=0;i<len;i++)
{
int id=s[i]-'a';
if(!cur->child[id])
cur->child[id]=new trie;
cur=cur->child[id];
}
if(cur->num==0)
{
cur->num=++num;
strcpy(dic[num],s);
}
return cur->num;
}
void init(trie* T)
{
int i;
for(i=0;i<26;i++)
{
if(T->child[i])
init(T->child[i]);
}
T->num=0;
for(i=0;i<26;i++)
T->child[i]=0;
}