zoukankan      html  css  js  c++  java
  • 字典树入门

    字典树入门

    用处

    字典树在字符串的匹配上有很好的优势,这里的字符串也不一定是字符,也可以是别的东西,目前感觉只要是按照字符串的形式

    字典树结点数组要开多大呢?

    假设节点的分支数为node_Branch,字符串数量为n,字符串最大长度为len,

    那么最大节点数组=$ n * len$,这个是重点。

    具体讲解可以看这个B站上的视频橙子讲算法,感觉不错。

    代码实现

    void insert(char *str)
    {
    	int len=strlen(str);
    	int root=0;
    	for(int i=len-1; i>=0; i--)
    	{
    		int id=str[i]-'a';
    		if(!tree[root][id])
    			tree[root][id]=++tot;
    		root=tree[root][id];
    	}
    	flag[root]++; //这里标记函数的位置也是可以多种多样
    }
    
    int find(char *str) //需要根据需要进行匹配 
    {
    	int len=strlen(str);
    	int root=0;
    	for(int i=0; i<len; i++)
    	{
    		int id=str[i]-'a';
    		if(!tree[root][id])
    			return 0;
    		root=tree[root][id];
    	}
    	return flag[root];
    }
    
    欢迎评论交流!
  • 相关阅读:
    二维数组求和
    mysql 常用函数
    3月17日 45道T-SQL查找 习题
    查询语句
    T-SQL 增删改查操作
    <转jerrylsxu> HTML语法大全
    1月25日 作业 多线程
    1月22日- 链表和哈希算法
    1月22日作业
    1月21日
  • 原文地址:https://www.cnblogs.com/alking1001/p/11789255.html
Copyright © 2011-2022 走看看