字典树建立的一般方法

原创 2012年03月22日 09:55:53
字典树的一般方法:写着留着看...........不喜勿喷............
(1)建立起一个链表。

    struct node 
    {
        int count;/*数据域*/
        struct node *next[26];/*指针域,26个只是表示小写英文字母,如果还要其他的字符则需要继续开大数组*/
    };


(2)建立起头节点

   struct node *root;

 

(3)新建节点,为字典树作准备

         1.由于是新建,则需要开辟内存
  
      struct node *p=(struct node *)malloc(sizeof(struct node));
      p->next[s[i]-'a']=NULL;


 (4)建立字典树

         1.由于已经新建好了节点,则不需要继续开辟内存。(继续很可能开会超内存,亲身体验)

            2.开辟过就不需要开辟,这也是字典树的好处,利于计算前缀;

    如果要计算前缀不要忘记将计数器初始化
     if(p->next[s[i]-'a']!=NULL)
     {
         p=p->next[s[i]-'a'];
     }
 3.如果没有开辟过,则利用节点连接,开辟空间
         if(p->nest[s[i]-'a']==NULL)
		 {
			 p->next[s[i]-'a']=newset();
		 }

释放内存:

int dele(node* T)
{
    int i;
    for(i=0;i<10;i++)
    {
        if(T->next[i]!=NULL)
            dele(T->next[i]);
    }
    delete T;
    return 0;
}

int del(node *t)
{
    int i;
    if(t==NULL) return 0;
    for(i=0;i<10;i++)
    {
        if(t->next[i]!=NULL)
        {
            del(t->next[i]);
        }
    }
    free(t);
    return 0;
}

......... ................................完成.............................................


                    

相关文章推荐

【字典树】字典树的创建(入门详细介绍)

Part one【何谓字典树】又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它...

[算法系列之二十]字典树(Trie)

又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。二 优点利用字符串的公共前缀来减...

字典树的多种实现方法

姿势1:静态数组形式 struct Trie { int ch[maxnode][sigema_size],val[maxnode],sz; Trie() {sz=1;m...

CodeForces 713A|Sonya and Queries|字典树|没方法

给出一些数字,询问一些满足对应位为偶数(0表示)或奇数(1表示)的数字的个数。 比如010格式的数字可以有818,52,98,2212等。首先各位数具体为多少并没有什么关系,所以全都模2,将长度扩展...

hiho #1014 : Trie树 (字典树的建立和查找)

#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,...

字典树的建立、删除、查找

package arithmetic; import java.util.*; class DicNode { int count;//当前字符在这个位置出现的次数 int next[] = ne...

字典树知识

  • 2012年10月15日 23:19
  • 42KB
  • 下载

字典树和KMP

  • 2015年03月17日 21:19
  • 860KB
  • 下载

hdu 4099 Revenge of Fibonacci 字典树+斐波拉契数列数列

字典树应用 题意:给你N个数,让你找出是不是前100000个斐波拉契数列的前40位,如果是则输出下标最小的那个斐波拉契数列数列的下标。 思路:求斐波拉契数列数列的前100000项的前40位。我们只...
  • HLSHYR
  • HLSHYR
  • 2016年07月08日 08:36
  • 219

敏感词检索工程(字典树算法)

  • 2016年11月23日 18:31
  • 13.66MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字典树建立的一般方法
举报原因:
原因补充:

(最多只允许输入30个字)