week2_Trie树

对于每一个给出的字符串,都在词典里找到以这个字符串开头的所有词;
我是真的不擅长树特别怕图论。大概数据结构真的不好。
硬着头皮编吧。
设计的数据结构是:
self:当前字母;
是否指向a-z:长度为26的数组;分别指向子树。
子树的节点个数:初始化为1,每当有路过即+1;
所以L[0]={a,0001000000000...1...0}
C不支持动态数组;所以是定义struct;然后申请100W辣么大的数组?
至于那个100w怎么算出来的。。。
我赌五毛它是觉得一个单词有10那么长还相互正交,10w个单词嘛。
100w是需要在函数外宏定义的。
这个题基本也就这样了。
我先睡一觉起来继续 太困了。
正好algorithmfans讲到Trie树

真的做的时候没有想的那么复杂。
talk is cheap。

void build(char *s)
{
    int i=0,p=0;//现在位于p点
    while(s[i])
    {
        int x=s[i]-'a';
        if(!T[p].next[x])//如果不存在,新建
        {
            T[le].init();
            T[p].next[x]=le++;//p+x的节点指向le
        }
        p=T[p].next[x];
        T[p].cnt++;
        i++;
    }
}
void query(char *s)
{
    int i=0,p=0;//现在位于p点
    while(s[i])
    {
        int x=s[i]-'a';
        if(!T[p].next[x])
        {
            puts("0");
            return ;
        }
        p=T[p].next[x];
        i++;
    }
    cout<<T[p].cnt<<endl;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 教你如何迅速秒杀掉:99%的海量数据处理面试题 本文经过大量细致的优化后,收录于我的新书《编程之法》第六章中,新书...
    Helen_Cat阅读 7,604评论 1 39
  • (本文转自百度搜索第一个CSDN博客) 一、知识简介 Trie 的强大之处就在于它的时间复杂度。它的插入和查询时间...
    Alan66阅读 918评论 0 0
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 5,410评论 0 12
  • 昨天下午和同事还有陈一起骑自行车去东环家乐福买东西,主要是水果和菜,因为便宜,买了不少,回来的时候坐公交。晚上看电...
    望飞雪阅读 164评论 0 1
  • 文\爱发梦 木子最终还是被汤先生娶回了家。 在木子25岁的时候,我和他们两个一起吃饭 下个月我要回家相亲了,听说是...
    爱发梦阅读 791评论 1 3

友情链接更多精彩内容