摘要: 1、引言 TripleArrayTrieTree是使用三数组来保存trie树的状态节点和转移条件。 2、实现 状态节点: 其中t保存着有效值,base保存着该状态节点的转移基数 声明字段: 其中states中保存着状态节点,next中保存着转移条件,check中用来检测转移的下一个节点是否已经被使用 阅读全文
posted @ 2018-07-15 22:06 搜索工程师 阅读(269) 评论(0) 推荐(0)
摘要: 1、引言 DoubleArrayTrieTree是使用双数组来保存状态节点和状态转移条件 2、实现 状态节点: t保存节点的有效值,base为节点的状态转移基数 声明字段: 构造函数: 数组状态变化: 只有根节点,检查数组checks为空 字符串插入: states数组既要保存数字,也需要保存状态转 阅读全文
posted @ 2018-07-15 22:06 搜索工程师 阅读(228) 评论(0) 推荐(0)
摘要: 1、引言 TableBaseTrieTree是基于二维数组表的数据结构来存储树的状态节点和转移条件。 2、实现 状态节点: 其中t为状态节点中的有效信息,next中保存着该状态节点向下一个状态节点的转移条件 声明字段: states中顺序保存着所有的状态节点 构造函数: 初始化root状态节点并加入 阅读全文
posted @ 2018-07-15 22:05 搜索工程师 阅读(150) 评论(0) 推荐(0)
摘要: 1、引言 MapBaseTrieTree是基于Map数据结构保存状态转移条件实现的trie树。 2、实现 状态节点: 其中t为状态节点中的有效信息,next中保存着该状态节点向下一个状态节点的转移条件 声明字段: root为trie树的根节点 构造函数: 构造函数只是初始化根节点 字符串插入: 将字 阅读全文
posted @ 2018-07-14 20:04 搜索工程师 阅读(113) 评论(0) 推荐(0)
摘要: 1、引言 ListBaseTrieTree是基于list数据结构保存状态转移条件实现的trie树。 2、实现 状态节点: 其中t为状态节点中的有效信息,next中保存着该状态节点向下一个状态节点的转移条件 声明字段: root为trie树的根节点 构造函数: 构造函数只是初始化根节点 字符串插入: 阅读全文
posted @ 2018-07-14 16:23 搜索工程师 阅读(159) 评论(0) 推荐(0)
摘要: 1、引言 Trie树时可以对大量字符串进行统计,排序和检索。由于其数据结构中共享了字符串的公共的前缀,可以有效的提高字符串的检索效率。 2、接口 Trie树主要方法为字符串的插入、检索以及前缀查询: Trie树的不同实现方式对内存开销和查询效率影响很大,后面的章节将详细介绍几种Trie树的实现。 实 阅读全文
posted @ 2018-07-10 22:28 搜索工程师 阅读(61) 评论(0) 推荐(0)
摘要: 1、引言 位图是使用位(bit)数组来对数据进行统计,排序和去重,其结构图如下: 其中位图的索引映射需要存储的值,位图索引所在位置的值表示索引对应的值是否已经存储。 2、接口 3、实现 定义静态byte数组常量,用于快速检验位图上索引对应的值: 声明字段: 其中size为位图的大小;当位图的size 阅读全文
posted @ 2018-07-09 22:54 搜索工程师 阅读(232) 评论(0) 推荐(1)