C++模板:字典树

//插入
void insert(char *s,char *s1){
    for(int l=strlen(s),x=0,i=0;i<l;i++){
        if(!trie[x].son[s[i]-'a'])trie[x].son[s[i]-'a']=++cnt;
        x=trie[x].son[s[i]-'a'];
        if(i==l-1)strcpy(trie[x].hash,s1);
    }
}

//查找
int find(char *s){
    for(int l=strlen(s),x=0,i=0;i<l;i++){
        if(!trie[x].son[s[i]-'a'])return 0;
        x=trie[x].son[s[i]-'a'];
        if(i==l-1){
            strcpy(ans,trie[x].hash);
            return strlen(ans)?1:0;
        }
    }
}
posted @ 2014-03-04 20:48  forever97  阅读(385)  评论(0编辑  收藏  举报