poj--2503+字典樹入門題
阿新 • • 發佈:2019-02-17
字典樹入門題
將字串結尾的標記為一個字串,然後就可以用字典樹的插入和查找了
程式碼如下:
#include<iostream> #include<cstring> #include<cstdio> using namespace std; #define maxn 26 typedef struct { char str[13]; int next[maxn]; }N; N node[300001]; int top; void insert(char *str,char *str1) { int len=strlen(str); int t=0; for(int i=0;i<len;i++) { if(node[t].next[str[i]-'a']==0) node[t].next[str[i]-'a']=++top; t=node[t].next[str[i]-'a']; } strcpy(node[t].str,str1); } int search(char *str) { int len=strlen(str); int t=0; for(int i=0;i<len;i++) { if(node[t].next[str[i]-'a']==0) return 0; t=node[t].next[str[i]-'a']; } printf("%s\n",node[t].str); return 1; } int main() { char str1[20],str2[20],str[100]; while(gets(str)) { if(strlen(str)==0) break; sscanf(str,"%s %s",str1,str2); insert(str2,str1); } while(gets(str)) { if(search(str)==0) printf("eh\n"); } return 0; }