实现Trie(前缀树)

实现Trie(前缀树)

 


 

变量简洁正确完整思路
Tires,isend和Tires*next[26]
class Trie {
public:
    Trie() {
        isEnd=false;
        memset(next,0,sizeof(next));
    }
    void insert(string word) {
        Trie*node=this;
        for(char c:word){
            if(!node->next[c-'a'])node->next[c-'a']=new Trie();
            node=node->next[c-'a'];
        }
        node->isEnd=true;
    }
    bool search(string word) {
        Trie*node=this;
        for(char c:word){
            node=node->next[c-'a'];
            if(!node)return false;
        }
        return node->isEnd;
    }
    bool startsWith(string prefix) {
        Trie*node=this;
        for(char c:prefix){
            node=node->next[c-'a'];
            if(!node)return false;
        }
        return true;
    }
private:
    bool isEnd;
    Trie*next[26];
};
踩过的坑
this指针不能赋值不能改变,所以Tries*node=this;

 

上一篇:洛谷 P5231 [JSOI2012]玄武密码


下一篇:【python】python删除一个指定路径的文件