![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
fishmei
这个作者很懒,什么都没留下…
展开
-
查找树
定义 排序二叉树,节点是数据本身,左子树比父节点要小,右字树比父节点要大 用法 1.快速查找节点是否存在在树中。log(n) 2.快速树种的最大值或者最小值。log(n) 优化 由于原始排序二叉树受输入数据影响,可能导致极度的不平衡。 所以有了平衡二叉树的说法,平衡二叉树的高度始终保持在log(n)的时间复杂度上。 平衡二叉树的变种 1.AVL树 2.红黑树 3.伸展树 4原创 2016-03-02 10:34:40 · 305 阅读 · 0 评论 -
前缀树
定义 前缀树,是将单词的每个字符作为树的节点。前缀树衍生自基数树,数字的基数是位,字符串的基数就是字符。所以前缀树相当于基为字符的基数树。另外,前缀树又成为Tire树。 作用 1.快速查找单词A是否在字符串B中。O(n*m) 2.快速查找单词A,B,C是否在字符串C中。O(n*m) 3.快速查找指定前缀下含有哪些单词。O(m) 优化 1.AC自动机。朴素的Trie树在进行模式匹配时,原创 2016-03-02 10:34:44 · 362 阅读 · 0 评论 -
线段树
线段树 查找树是用来查询数据本身是否存放的结构,线段树就是用来查询数据的聚合结果的结构。 概述 线段树的非叶子节点都是区间,而叶子节点是原始数据本身。非叶子节点中经常存放着叶子节点的聚合数据,例如最大值,最小值,数量值等等。 由于线段树的区间只跟数据的数值范围有关,不跟数据有关。所以线段树的高度最大为log(数值范围)。 例如存放int值的线段树,高度最大为log(INT_MAX)原创 2016-03-02 10:34:43 · 252 阅读 · 0 评论 -
后缀树
定义 后缀树建立的是单个单词的所有后缀的Trie树。 作用 1.快速判断单词A是否在句子B中,以及匹配的最长长度。O(n m) 2.快速判断单词A在句子B中的重复次数。O(m) 3.快速判断单词A与单词B的最长公共子串。O(m) 4.快速找出句子A中的最长回文字串。O(m) 优化 1.后缀数组。后缀树的数组形式。 2.后缀状态机。后缀树的状态机形式。原创 2016-03-02 10:34:37 · 240 阅读 · 0 评论