模拟Trie树结构

简介: 模拟Trie树结构

Trie树的概念


Trie树是数据结构比较简单的一种。Trie 树的基本用法是高效的存储和查找字符串集合的数据结构。Trie树也叫做字典树,它是一个树形结构。是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串。Trie树本质,利用字符串之间的公共前缀,将重复的前缀合并在一起。


例如:


插入


abcdef


abdef


aced


bcdf


bcff


cdaa


bcdc


abc


1.首先插入abcdef


先判断根节点有没有a这个点作为子节点,没有就创建出来,以此类推,再从a往下走,判断a有没有b这个子节点,没有就创建出来,以此类推,把剩下的插入进来,(存的时候会在结尾的单词后面打上一个标记,表示在这个字母结尾是有一个的单词的)如图:



2.依次插入其他


最终结果


模板:


    static int N=100010;
    static int [][]son=new int[N][26];  //son[][]存储树中每个节点的子节点
    static int []cnt=new int[N];        //记录以每个结点结尾的单词数量
    static int idx;         //当前用的的哪个下标,下标0:既是根节点又是空节点
    //插入操作
    public static void insert(char []str){
        int p=0;//根节点
        for (int i = 0; i < str.length; i++) {//从根节点开始依次遍历
            int x=str[i]-'a';//把当前这个节点的下标取出来
            //如果当前这个点上不存在对应的字母的话,创建出来
            if(son[p][x]==0){
              son[p][x]=++idx;
            }
            //走到下一个点,p可以理解为父节点
            p=son[p][x];
        }
        cnt[p]++; //记录下这个单词出现次数
    }
    //查询操作
   public static int query(char []str){
       int p=0;
       for (int i = 0; i < str.length; i++) {
           int x=str[i]-'a';
           //如果不存在这个子节点的话,说明集合中不存在这个单词
           if(son[p][x]==0) return 0;
           p=son[p][x];
       }
       return cnt[p];
   }


相关文章
|
前端开发 微服务 容器
springcloud - 使用knife4j聚合微服务接口文档
springcloud - 使用knife4j聚合微服务接口文档
springcloud - 使用knife4j聚合微服务接口文档
|
算法 数据库 索引
HyperLogLog算法的原理是什么
【10月更文挑战第19天】HyperLogLog算法的原理是什么
962 1
|
SQL 监控 Java
IDEA插件-Mybatis Log Free日志替换
MyBatis Log Free 是一个免费的用于在 IntelliJ IDEA 中显示 MyBatis 日志的插件。它可以帮助您更方便地查看和分析 MyBatis 的 SQL 执行情况,以及定位潜在的性能问题,提高开发效率。
3712 0
IDEA插件-Mybatis Log Free日志替换
|
域名解析 应用服务中间件 对象存储
解决阿里云oss图片浏览器访问直接下载而不是打开
解决阿里云oss图片浏览器访问直接下载而不是打开
8192 0
|
存储 机器学习/深度学习 算法
数据结构——树
树是数据结构中一种非常重要的非线性存储结构
561 0
数据结构——树
|
1天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
7646 32
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
1天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
659 146
|
1天前
|
人工智能 缓存 自然语言处理
阿里Qwen3.7-Max评测:Agent能力显著提升,耗时与调用成本大幅下降
阿里云百炼推出面向智能体的旗舰大模型Qwen3.7-Max,具备长周期自主执行能力,显著提升编程、办公自动化等复杂任务处理水平;支持MCP集成与多框架兼容,并以限时5折+100万Tokens免费试用大幅降低使用门槛,助力企业高效落地AI应用。在阿里云百炼平台快速体验:https://t.aliyun.com/U/fPVHqY