poj2001

来源:互联网 发布:淘宝网上进货 编辑:程序博客网 时间:2024/05/17 23:42
第一个不依靠模板拍出来的字典树,题目比较水,开始空间没开对WA了无数次,纠结了一个多小时
#include<iostream>#include<cstdio>#include<cstring>using namespace std;char dic[10000][25];//这里一开始开了20,死活不对typedef struct node{    int count;    struct node *next[26];}node;node *root=new node();void insert(int num){    int len=strlen(dic[num]);    node *now=root;    node *newnode;    for(int i=0;i<len;i++)    {        if(now->next[dic[num][i]-'a']!=NULL)        {            now=now->next[dic[num][i]-'a'];            (now->count)++;        }        else        {            newnode=new node();            newnode->count=1;            for(int j=0;j<26;j++)            newnode->next[j]=NULL;            now->next[dic[num][i]-'a']=newnode;now=newnode;        }    }}void search(int num){    int len=strlen(dic[num]);    node *now=root;    for(int i=0;i<len;i++)    {            now=now->next[dic[num][i]-'a'];            printf("%c",dic[num][i]);            if(now->count==1)                  return ;    }return ;}int main(){    int i,j,k=0;    root->count=0;    for(i=0;i<26;i++)    root->next[i]=NULL;    while(cin>>dic[k]&& dic[k][0]!='0')//调试时用的,提交时修改    {        insert(k);        k++;    }    for(i=0;i<k;i++)    {        printf("%s ",dic[i]);        search(i);        printf("\n");    }    return 0;}

0 0
原创粉丝点击