typedef struct trie_node{
int count;
struct trie_node* next[26];
bool exist;
}TrieNode , *Trie;
TrieNode* CreatTrieNode()
{
TrieNode* root=new TrieNode();
root->count=0;
memset(root->next, 0, sizeof(root->next));
root->exist=false;
return root;
}
TrieNode* insert(TrieNode* root,char *word)
{
TrieNode* Node=root;
while(*word)
{
char c=*word;
int id=c-'a';
if(Node->next[id]==NULL)
Node->next[id]=CreatTrieNode();
Node=Node->next[id];
Node->count++;
word++;
}
Node->exist=true;
return root;
}
int search_word(TrieNode* root,char *word)
{
TrieNode* Node=root;
while(*word)
{
int id=*word-'a';
if(Node->next[id]==NULL)
return 0;
else
{
Node=Node->next[id];
word++;
}
}
if(Node->exist==true)
return 1;
return 0;
}