#include<stdio.h>
typedef struct Node
{
int i;
struct Node *next[26];
}DTree;
DTree root;
int sum=1;
void change(char str[100])
{
int len,i,j,id;
DTree *p=&root,* q;
len=strlen(str);
for(i=0;i<len;i++)
{
id=str[i]-'A';
if(p->next[id]==NULL)
{
q=(DTree *)malloc(sizeof(DTree));
for(j=0;j<26;j++)
q->next[j]=NULL;
p->next[id]=q;
sum++;
}
p=p->next[id];
}
}
int main()
{
freopen("in.txt","r",stdin);//输出文件实际测试时,EOF由此而生成
char str[100];
int i,j,k;
for(i=0;i<100;i++)
str[i]=NULL;
while(scanf("%s",str)!=EOF)
{
change(str);
for(i=0;i<100;i++)
str[i]=NULL;
}
printf("%d\n\n",sum);
return 0;
}
西瓜的编译原理作业 AOJ 842
最新推荐文章于 2021-08-11 19:00:33 发布