1 #include <cstdio> 2 #include <cstring> 3 4 char en[11],fr[11]; 5 int st; 6 struct Tire{ 7 int next[26]; 8 char eng[11]; 9 }node[200005]; 10 void insert(char *s,int cur) 11 { 12 if(*s){ 13 if(!node[cur].next[*s-‘a‘]) 14 node[cur].next[*s-‘a‘]=++st; 15 insert(s+1,node[cur].next[*s-‘a‘]); 16 } 17 else strcpy(node[cur].eng,en); 18 } 19 void search(char *s,int cur) 20 { 21 if(*s){ 22 if(!node[cur].next[*s-‘a‘]){ 23 printf("%s\n","eh"); 24 return; 25 } 26 search(s+1,node[cur].next[*s-‘a‘]); 27 } 28 else printf("%s\n",node[cur].eng); 29 } 30 int main() 31 { 32 char str[100]; 33 while(gets(str)&&str[0]){ 34 sscanf(str,"%s%s",en,fr); 35 insert(fr,0); 36 } 37 while(scanf("%s",fr) != EOF){ 38 search(fr,0); 39 } 40 return 0; 41 }
字典树模板题 POJ 2503,布布扣,bubuko.com
原文:http://www.cnblogs.com/CSU3901130321/p/3900386.html