| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:第一次用字段树,总是WA不知道哪的问题...请哪位帮忙解答下,谢谢啦!!In Reply To:第一次用字段树,总是WA不知道哪的问题...请哪位帮忙解答下,谢谢啦!! Posted by:RomanStorm at 2009-10-17 10:26:27 感觉有点复杂,其实在 每次 Insert 的时候就可以判断是否有了 我只用了 insert 函数,没用其他的,不用 sort 关键部分代码 void insert(Trie *head,char str[]) { Trie *s=head; Trie *t; int len=strlen(str); int i; for(i=0;i<len;i++) { if(s->next[str[i]-'0']==NULL) break; s=s->next[str[i]-'0']; if(s->flag) ans=1; // 代表有前缀 } if( i==len ) { s->flag=1; for(int k=0;k<10;k++) { if( s->next[k]!=NULL ) { ans=1; break; } } return; } for(int j=i;j<len;j++) { t=&tt[pos++];//动态分配孩子 for(int k=0;k<10;k++)//清空 { t->next[k]=NULL; } t->flag=0;//标记 s->next[str[j]-'0']=t;//以这个字母为根,展开到下一层 s=t; } s->flag=1;//以当前层结束的单词存在 } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator