ZOJ 1109 Language of FatMouse (trie树)

第一次用字典树,没怎么调试就运行成功了,我感到很惊讶。接下来就做几个这样的题训练训练吧。

 

#include<stdio.h> #include<string.h> #include<stdlib.h> struct node { int isword; char dic[15]; struct node *next[26]; }head; void nu(struct node *x) { int i; for( i = 0; i < 26; i++ ) x->next[i] = NULL; x->isword = 0; } void fuck(char *a,char *b) { struct node *temp=&head; int t,i,len = strlen(b); for( i = 0; i < len; i++ ) { t = b[i]-'a'; if( temp->next[t] == NULL ) { temp->next[t] = (struct node *)malloc(sizeof(struct node)); nu(temp->next[t]); temp = temp->next[t]; } else temp = temp->next[t]; } temp->isword = 1; strcpy(temp->dic,a); } void printword(char *b) { struct node *temp=&head; int t,i,len = strlen(b); for( i = 0; i < len; i++ ) { t = b[i]-'a'; if( temp->next[t] == NULL ) { printf("eh/n"); return ; } temp = temp->next[t]; } if( temp->isword ) printf("%s/n",temp->dic); else printf("eh/n"); } int main(void) { char s[50],a[50],b[50]; nu(&head); while( gets(s) && s[0]!='/0') { sscanf(s,"%s%s",a,b); fuck(a,b); } while( scanf("%s",s)!= EOF ) { printword(s); } return 0; }

你可能感兴趣的:(ZOJ 1109 Language of FatMouse (trie树))