![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
//字典树模板
2
#include <iostream>
3
using namespace std;
4
const int kind=26;
5
struct node
6![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
7
int i,count;
8
node *next[kind];
9
node()
10![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
11
count=1;
12
for(i=0;i<kind;i++)
13
next[i]=NULL;
14
}
15
};
16
void insert(node *root,char *word)
17![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
18
int i=0,branch;
19
node *local=root;
20
if(local==NULL)
21![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
22
local=new node();
23
root=local;
24
}
25
while(word[i])
26![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
27
branch=word[i]-'a';
28
if(local->next[branch])
29
local->next[branch]->count++;
30
else
31
local->next[branch]=new node();
32
i++;
33
local=local->next[branch];
34
}
35
}
36
int search(node *root,char *word)
37![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
38
int i=0,branch,ans;
39
node *local=root;
40
41
if(local==NULL)
42
return 0;
43
while(word[i])
44![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
45
branch=word[i]-'a';
46
if(!local->next[branch])
47
return 0;
48
i++;
49
local=local->next[branch];
50
ans=local->count;
51
}
52
return ans;
53
}
54
int main()
55![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
56
char str[12];
57
node *root=new node;
58
while(gets(str) && strcmp(str,""))
59
insert(root,str);
60
while(scanf("%s",str)!=EOF)
61
printf("%d\n",search(root,str));
62
return 0;
63
}