本文共 1282 字,大约阅读时间需要 4 分钟。
字典树模板题,但map更容易些
代码:
#includemap代码:using namespace std;struct Node{ bool flag; Node *next[26]; Node() { for(int i=0;i<26;i++) { next[i]=NULL; flag=false; } }}root;void chuli(char * x)//建树{ Node *p=&root; for(int i=0;x[i];i++) { int k=(x[i]-'a'); if(p->next[k]==NULL) { p->next[k]= new Node; } p=p->next[k]; } p->flag=true;}bool find2(char *str, int i)//查询{ Node *p = &root; for (int j=i; str[j]; j++) { int k = str[j] - 'a'; if (p -> next[k] == NULL) return false; p = p->next[k]; } return p->flag;}void find1(char * x){ Node *p=&root; for(int i=0;x[i];i++) { int k=(x[i]-'a'); if(p->next[k]==NULL) { break; } if(p->flag&&find2(x,i)) { cout< < next[k]; }}int main(){ char a[50010][17]; int k=0; while(cin>>a[k]) { chuli(a[k]); k++; } for(int i=0;i
#include#include #include
转载地址:http://xygji.baihongyu.com/