标签:blog os io ar 代码 div amp log
字典树的应用题目,虽然照模板就能打出来,但是看着学长的代码,学会了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;
}
标签:blog os io ar 代码 div amp log
原文地址:http://www.cnblogs.com/DUANZ/p/3890246.html