1 Trie 介绍

1.1 字典

  • 如果有 n 个条目,使用树结构,查询的时间复杂度是 O(logn);
  • 如果有100 万个条目(2^20),logn 大约数20

1.2 Trie

  • 查询每个条目的时间复杂度和字典中的条目总数无关;
  • 时间复杂度是 O(w),w 是查询单词的长度;

1.3 Trie 的查询

  • Trie.java
package tree;import java.util.TreeMap;public class Trie {private class Node {public boolean isWord;public TreeMap<Character, Node> next;public Node(boolean isWord) {this.isWord = isWord;next = new TreeMap<>();}public Node() {this(false);}}private Node root;private int size;public Trie() {root = new Node();size = 0;}public int getSize() {return size;}public void add(String word) {Node cur = root;for (int i = 0; i < word.length(); i++) {char c = word.charAt(i);if (cur.next.get(c) == null) {cur.next.put(c, new Node());}cur = cur.next.get(c);}if (!cur.isWord) {cur.isWord = true;size++;}}public boolean contains(String word) {Node cur = root;for (int i = 0; i < word.length(); i++) {char c = word.charAt(i);if (cur.next.get(c) == null) {return false;}cur = cur.next.get(c);}return cur.isWord;}}

1.4 Trie 前缀搜索

  // 查询是否在 Trie 中有单词以 prefix 为前缀public boolean isPrefix(String prefix) {Node cur = root;for (int i = 0; i < prefix.length(); i++) {char c = prefix.charAt(i);if (cur.next.get(c) == null) {return false;}cur = cur.next.get(c);}return true;}

Trie字典树(1)—— 字典树查询相关推荐

  1. Trie树(字典树)详细知识点及其应用

    Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree.当然很多名字的意义其实有交 ...

  2. 前缀树(字典树,单词查找树,Trie树)

    参考网址:https://blog.csdn.net/u013949069/article/details/78056102?utm_source=copy 概述 前缀树又名字典树,单词查找树,Tri ...

  3. 分门别类刷leetcode——高级数据结构(字典树,前缀树,trie树,并查集,线段树)

    目录 Trie树(字典树.前缀树)的基础知识 字典树的节点表示 字典树构造的例子 字典树的前序遍历 获取字典树中全部单词 字典树的整体功能 字典树的插入操作 字典树的搜索操作 字典树的前缀查询 字典树 ...

  4. 实现字典树(前缀树、Trie树)并详解其应用

    今天看到一个比较好的数据结构,字典树,做一下记录,以供自己后期复习和读者朋友的参考. 1.定义 字典树又称单词查找树.前缀树.Trie树等,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序 ...

  5. 【转】从Trie树(字典树)谈到后缀树

    本文第一部分,咱们就来了解这个Trie树,然后自然而然过渡到第二部分.后缀树,接着进入第三部分.详细阐述后缀树的构造方法-Ukkonen. 第一部分.Trie树 1.1.什么是Trie树 Trie树, ...

  6. 从Trie树(字典树)和后缀树

    从Trie树(字典树)谈到后缀树 转载:http://blog.csdn.net/v_july_v/article/details/6897097#t22 感谢作者,侵删. 引言 常关注本blog的读 ...

  7. trie(字典树、前缀树)

    trie(字典树.前缀树) 1. trie原理 原理 trie树,又被称为字典树.前缀树,是一种高效地存储和查找字符串集合的数据结构. 一般来说,用到trie的题目中的字母要么全是小写字母,要么全是大 ...

  8. c语言 trie树,C语言实现Trie树(字典树)的插入查找删除与遍历操作

    Trie树,也称作是字典树,是一种哈希树的变种,查询效率较高.Trie树可以用于统计或者排序大量的字符串,比如对一系列字符串按照字典序排序. 字典树是一个多叉树,每一个节点上存储的不是一个字符串,而是 ...

  9. 0x16.基本数据结构 — Trie树(字典树)+ A C 自 动 机

    目录 用TrieTrieTrie树来处理整数异或问题是真的舒服! 一.TrieTrieTrie树 TrieTrieTrie的基本操作 0.初始化 1.插入 2.检索 二.TrieTrieTrie树例题 ...

  10. 字典树(前缀树)-Java实现

    字典树 字典树是一种树形结构,优点是利用字符串的公共前缀来节约存储空间.在这提供一个自己写的Java实现,非常简洁. 根节点没有字符路径.除根节点外,每一个节点都被一个字符路径找到. 从根节点到某一节 ...

最新文章

  1. 4g内存只有1.6g可用_32位系统可用内存小 遇到32位系统内存小的解决方法
  2. laravel 5.5 整合 jwt 报错Method Tymon\JWTAuth\Commands\JWTGenerateCommand::handle() does not exist解决...
  3. COM本质论学习笔记(一)IDL
  4. 没有语言基础可以学python_没有Python语言基础可以学习深度学习吗?
  5. JS如何控制checkbox的全选反选
  6. ajax成功之后在执行,ajax传入成功后执行后台方法
  7. sriov查看pf-vf对应关系
  8. memcached搭建缓存系统
  9. oracle 手动执行作业,ORACLE 作业操作
  10. mysql definer super_技术分享 | 改写 mysqldump 解决 DEFINER 问题
  11. 高数教材班复习Hint(3.1-3.6)
  12. Python爬取视频之爱情电影及解密TS文件和两种合并ts的方法
  13. 跟着我学习 AI丨语音识别:将语音转为数字信号
  14. 怎么从网上办大流量卡呢?具体步骤小编都给你写好的!
  15. 【论文阅读】ICLR 2022: Scene Transformer: A unified architecture for predicting future trajectories of ...
  16. Android 平台的Python——CLE方案实现(三)
  17. 发育网络(DN): 一个涌现的图灵机
  18. 新的里程碑,海洋元宇宙AQUANEE即将登陆Gate以及BitMart
  19. 2019百度地图离线地图制作
  20. 找朋友(斗地主)判断逻辑

热门文章

  1. 仿真枪测速器开发之液晶横屏(ST7531)
  2. 2019年免费抢票神器
  3. Oracle9i完美安装、配置及操作
  4. unity的ugui-5.小地图(minimap)制作
  5. AE-用particular制作金币掉落或者红包掉落或者樱花飘落的效果
  6. 微型计算机系统总线上外扩8254的应用
  7. 屏幕适配:修改屏幕像素密度,随便设dp
  8. 2022-2028年中国汽车样车试制行业市场调研分析及发展规模预测报告
  9. 【Dear Imgui】组件的使用之Text
  10. 背景与菜单的全局设置(跨Client)