首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

hud 1251 统计难点

2012-10-27 
hud 1251 统计难题//我写的字典树//统计难题(统计一堆字符串中的前缀出现次数)#include iostream#includ

hud 1251 统计难题

//我写的字典树//统计难题(统计一堆字符串中的前缀出现次数)#include <iostream>#include <stdio.h>using namespace std;struct node{ node *next[26]; int num;};node *root,memory[1000005];int cnt=0;//创建node *creatnode(){ node *p=&memory[cnt++]; p->num=1; for(int i=0;i<26;i++) { p->next[i]=NULL; } return p;}//插入void insertnode(char *s){ node *p=root; int k; for(int i=0;s[i];i++) { k=s[i]-'a'; if(p->next[k]==NULL) { p->next[k]=creatnode(); } else { p->next[k]->num++; } p=p->next[k]; }}//查找int searchnode(char *s){ node *p=root; int k; for(int i=0;s[i];i++) { k=s[i]-'a'; if(p->next[k]==NULL) return 0; else p=p->next[k]; } return p->num;}int main(){ char ch[105]; int sum; root=creatnode(); while(gets(ch)) { if(ch[0]==0) break; insertnode(ch); } while(gets(ch)) { if(ch[0]==0) break; sum=searchnode(ch); printf("%d\n",sum); } return 0;}

?

热点排行