
数据结构
文章平均质量分 86
bestsort
这个作者很懒,什么都没留下…
展开
-
C二叉树操作图解(建树,遍历,销毁)
C二叉树操作图解(建树,遍历,销毁)原创 2017-12-12 17:57:25 · 2052 阅读 · 0 评论 -
可持续化线段树(主席树) 算法模板与图解
#include <cstdio>#include <cmath>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <queue>#de...原创 2019-03-21 16:42:29 · 559 阅读 · 0 评论 -
AC自动机 算法详解(图解)及模板
ac自动机,就是在tire树的基础上,增加一个fail指针,如果当前点匹配失败,则将指针**转移**到fail指针指向的地方,这样就不用回溯,而可以路匹配下去了.(当前模式串后缀和fail指针指向的模式串部分前缀相同,如`abce`和`bcd`,我们找到`c`发现下一个要找的不是`e`,就跳到`bcd`中的`c`处,看看此处的下一个字符(`d`)是不是应该找的那一个)原创 2018-10-05 22:17:32 · 115366 阅读 · 72 评论 -
划分树 详解及模板
划分树的目的:求区间内第K大数。对于此类问题,暴力的话直接对区间进行sort,但是时间复杂度很高,如果q次查询的话嘛,时间复杂度O(q*n*log(n))为了降低时间复杂度,我们采取将数组构造成树的形式,这样,时间复杂度能降到log(n),但是空间复杂度为n*log(n).建树规则为:`小于等于中位数的放在左子树,大于中位数的放在右子树`,以1-9的随机数组为例,建树方式如下:原创 2018-08-08 11:28:25 · 582 阅读 · 0 评论 -
C++ STL 队列的使用(普通队列,双端队列,优先队列)
下列表格中带‘*’表示括号内无内容 否则括号内需要填要操作的元素 比如:name.pop()name.push(1) 名字 普通队列 双端队列 优先队列 头文件 #include &lt;queue&gt; #include&lt;deque&gt; #include &lt;queue&gt; 声明(DateType 为任意数据...原创 2018-07-23 11:15:41 · 1505 阅读 · 0 评论 -
线段树 数据结构详解与模板
转载请注明出处bestsort.cn线段树是一个查询和修改复杂度都为log(n)的数据结构。主要用于数组的单点修改&&单点查询&&区间求和&&区间修改.另外一个拥有类似功能的是树状数组,但是树状数组最常用的是单点修改&&区间求和.线段树完全涵盖树状数组所有功能具体区别和联系如下:1.两者在复杂度上同级, 但...原创 2018-06-26 16:08:08 · 1116 阅读 · 0 评论 -
树状数组 数据结构详解与模板(可能是最详细的了)
目录转载请注明出处:bestsort.cn树状数组基础单点更新:区间查询:高级操作求逆序对操作原理求区间最大值区间修改+单点查询查询修改区间修改+区间查询查询修改二维树状数组单点修改+区间查询区间修改 + 单点查询区间修改 + 区间查询转载请注明出处:bestsort.cn树状数组基础树状数组是一个...原创 2018-06-25 08:49:41 · 75919 阅读 · 59 评论 -
POJ1990 MooFest 树状数组 题解(附图)
MooFestTime Limit: 1000MS Memory Limit: 30000K Total Submissions:9207 Accepted: 4167 DescriptionEvery year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a soc...原创 2018-06-29 10:47:33 · 832 阅读 · 0 评论 -
常用数据结构及复杂度
常用数据结构的时间复杂度Data StructureAddFindDeleteGetByIndex Array (T[])O(n)O(n)O(n)O(1) Linked list (LinkedList<T>)O(1)O(n)O(n)O(n) Resizable array list (List<T>)O(1)O(n)O(n)O(1) Stack (Stack<T&g...转载 2018-05-13 16:47:13 · 2501 阅读 · 0 评论 -
c语言栈的实现以及操作
此文章包含了栈的结构体实现,单数据类型实现,以及清空,判空,入栈,出栈,求栈顶元素的实现转载请注明出自bestsort.cn栈作为一个最简单的数据结构,实现起来也非常容易,想想现在有一摞盘子,每次只能取走或放一个盘子且只能最上面进行操作;那么我们如果有一个索引TOP时刻指向最上面的那个盘子,栈不就实现了么?第一段是单数据类型的代码#include <stdio.h...原创 2018-03-24 22:04:08 · 22183 阅读 · 5 评论 -
C单链表操作
函数顺序依次为单链表的创建(头插和尾插法),初始化,判空,遍历,求链表长度,按值查找,按位查找,插入,删除,销毁操作并且在主函数中举例说了链表的创建,遍历,求长,删除,插入操作;进阶操作:c循环链表 http://blog.youkuaiyun.com/bestsort/article/details/78715889http://blog.youkuaiyun.com/bestsort/article/details/...原创 2017-12-01 16:54:34 · 1035 阅读 · 0 评论