首页 > 代码库 > Trie树

Trie树

#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<queue>#include<vector>#include<cstring>#include<cmath>using namespace std;typedef long long ll;#define N 1000000000#define Max 11111struct tire{    int ff;    tire *netx[26];};tire root;char str[11];void init(tire *p){    p->ff=0;    for(int i=0;i<26; i++)p->netx[i]=NULL;}void TianJia(){    int len=strlen(str);    tire *p=&root,*q;    for(int i=0; i<len; i++){        int x=str[i]-a;        if(p->netx[x]==NULL){            q=(tire *)malloc(sizeof(tire));            init(q);            p->netx[x]=q;            p=p->netx[x];            p->ff++;        }        else{            p=p->netx[x];            p->ff++;        }    }}int ChaXun(){    int len=strlen(str);    tire *p=&root;    for(int i=0; i<len; i++){        int x=str[i]-a;        if(p->netx[x]==NULL)return 0;        else p=p->netx[x];    }    return p->ff;}int main(){    int n,m;    scanf("%d",&n);    while(n--){        scanf("%s",&str);        TianJia();    }
  return 0;
}

 

Trie树