首页 > 代码库 > poj2503
poj2503
字典树的应用题目,虽然照模板就能打出来,但是看着学长的代码,学会了sscanf的用法,sscanf(str,"%s%s",a,b)把str分成a和b两个字符串,分隔符为空格
#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<algorithm>using namespace std;int tp;char a[11],b[11];struct Tire{ int next[26];//儿子节点编号 char eng[11];//11?}tt[200000];void insert(char*x,int site){ if(*x) { if(!tt[site].next[*x-‘a‘]) { tt[site].next[*x-‘a‘] = ++tp; cout<< tp<< endl; } insert(x+1,tt[site].next[*x-‘a‘]); } else { strcpy(tt[site].eng,a);//把不在字典树中的字符加进去 }}void search(char *x,int site){ if(*x) { if(!tt[site].next[*x-‘a‘]) { printf("eh\n"); return; } search(x+1,tt[site].next[*x-‘a‘]); } else { printf("%s\n",tt[site].eng); }}int main(){ char str[100]; while(gets(str)&&str[0]) { sscanf(str,"%s%s",a,b); cout<< b<< endl; insert(b,0); } while(scanf("%s",b)!= EOF) { search(b,0); } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。