Trie树

作者: 1QzUPm_09F | 来源:发表于2017-05-01 13:54 被阅读0次

建立一个字典树,先存入单词,再查找单词,最后输出具有该前缀的单词数量。

#include<cstdio>
#include<cstdlib>

struct node
{
    int cnt;
    int next[26];
} T[10000010];

int t=0;
char str[20];

void Insert(char *s)
{
    int i=0, p=0, temp;
    while(s[i])
    {
        temp=s[i]-'a';
        if(T[p].next[temp]==0)
        {
            t++;
            T[p].next[temp]=t;
        }
        p=T[p].next[temp];
        T[p].cnt++;
        i++;
    }
}

void Query(char *s)
{
    int i=0, p=0, temp;
    while(s[i])
    {
        temp=s[i]-'a';
        if(T[p].next[temp]==0)
        {
            printf("0\n");
            return ;
        }
        p=T[p].next[temp];
        i++;
    }
    printf("%d\n",T[p].cnt);
    return ;
}

int main()
{
    int m, n;
    scanf("%d", &n);
    getchar();
    while(n--)
    {
        gets(str);
        Insert(str);
    }
    scanf("%d", &m);
    getchar();
    while(m--)
    {
        gets(str);
        Query(str);
    }
    return 0;
}

核心代码:

void Insert(char *s)
{
    int i=0, p=0, temp;
    while(s[i])
    {
        temp=s[i]-'a';
        if(T[p].next[temp]==0)
        {
            t++;
            T[p].next[temp]=t;
        }
        p=T[p].next[temp];
        T[p].cnt++;
        i++;
    }
}

先判断是否存在该前缀,如果不存在,就构建新的枝叶。
查找一个就为该枝叶记一次数,表示到该枝叶的前缀个数

相关文章

  • trie树

    文章内容来自 Trie树:应用于统计和排序Trie树 trie树又称:字典树、单词查找树、前缀树等,总之是一种树状...

  • 树结构之Trie

    1. 什么是trie树 1.Trie树 (特例结构树)Trie树,又称单词查找树、字典树,是一种树形结构,是一种哈...

  • 实现 Trie

    数据结构之Trie树Trie树:应用于统计和排序

  • Trie树

    一、定义 Trie树,又称为单词查找树,是一种树形结构(Trie一词源于单词Retrieval-取出)。Trie树...

  • leetcode——字典树(Trie树)的实现

    leetcode——实现Trie(前缀树) 题目 实现一个 Trie (前缀树),包含 insert, searc...

  • 算法笔记 - Trie 树

    Trie树是一种非常常见的算法 Trie树的主要用途是快速地匹配字符串 Tire树可以记录数值 Trie树的实现成...

  • 以太坊详解 之 Merkle Patricia Tree

    基础知识 Trie树 Trie是一种搜索树,又称字典树(digital tree)和前缀树(prefix tree...

  • 数据结构与算法笔记day21:Trie树|AC自动机

    1Trie树 这节课学习了一种特殊的树,Trie树。Trie树是一种解决字符串快速匹配问题的数据结构。如果用来...

  • Leetcode 208 实现 Trie (前缀树)

    实现 Trie (前缀树) 题目 实现一个 Trie (前缀树),包含 insert, search, 和 sta...

  • 208-实现Trie(前缀树)

    实现Trie(前缀树) 题目 实现一个 Trie (前缀树),包含 insert, search, 和 start...

网友评论

      本文标题:Trie树

      本文链接:https://www.haomeiwen.com/subject/fuwftxtx.html