字典树的定义

来源:互联网 发布:4g网络能玩英雄联盟吗 编辑:程序博客网 时间:2024/06/10 16:52

typedef struct trie_node{

        int count;

        structtrie_node* next[26];

        bool exist;

    }TrieNode , *Trie;

    TrieNode* CreatTrieNode()

    {

        TrieNode* root=newTrieNode();

        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)

                return0;

            else

            {

                Node=Node->next[id];

                word++;

            }

        }

        if(Node->exist==true)

            return1;

        return0;

    }

原创粉丝点击