• 浅谈Trie


    所谓(Trie)就是字典树。

    何为字典树?想象一下我们平时用拼音查字法在字典树查汉字的时候,一位一位确定这个汉字的拼音从而翻到我们想要看的那一面。

    所以(Trie)树跟字典一样,是一种逐位检索查找信息的数据结构。

    对于(Trie)树的每一条边,都代表一个字符,从根走到某一个点就是一个字符串。我们可以在点上保存信息。

    这个简单的东西我似乎无法继续扯下去了……总之这是一种十分简单的数据结构但是题目可以出得很毒瘤

    插入一个字符串:

    void ins(char *s) {
        int len=strlen(s+1),pos=root;
        for(int i=1;i<=len;i++) {
            if(son[pos][s[i]-'a'])pos=son[pos][s[i]-'a'];
            else pos=son[pos][s[i]-'a']=++tot;
    	}
        is_a_word[pos]=1;
    }
    

    询问一个字符串在字典序中是否存在:

    bool find(char *s) {
        int len=strlen(s+1),pos=root;
        for(int i=1;i<=len;i++) {
            if(son[pos][s[i]-'a'])pos=son[pos][s[i]-'a'];
            else return 0;
    	}
        return is_a_word[pos];
    }
    
  • 相关阅读:
    HDU 4893 线段树
    Catalan数推导(转载)
    URAL 1992
    小乐乐吃糖豆
    排列组合问题总结
    G
    F
    C
    D
    B
  • 原文地址:https://www.cnblogs.com/AKMer/p/10444829.html
Copyright © 2020-2023  润新知