数据结构
详细记录了几乎所有的有关数据结构知识点
烊萌
欲戴王冠,必承其重;欲登高峰,必忍其痛;欲有大成,必有其梦。
展开
-
【数据结构知识】拓扑排序
拓扑排序#include <iostream>#include <vector>#include <queue>using namespace std;int main() { int m; cin>>m; //表示有m个顶点 标号为:1-m vector<vector<int>> edge(m+1); //表示邻接矩阵 每个顶点所连接边的节点 vector<int> in(m+1);原创 2020-09-25 10:40:50 · 252 阅读 · 0 评论 -
【字符串转换】字符串去掉[ ]
字符串去掉[ ]规则:[3|AC]——>ACACACHGI[3|AC[2|B]]KG[2|F[2|BC]]hj——>HGIACBBACBBACBBKGFBCBCFBCBChj解决:这种需要递归解决的,一般两种办法,深度优先搜索或者用栈来模拟#include <iostream>#include <stack>using namespa...原创 2020-04-10 11:49:42 · 2155 阅读 · 0 评论 -
【数据结构知识】【栈】【树】波兰序列和逆波兰序列【详细版】
波兰序列和逆波兰序列目录波兰序列和逆波兰序列1、栈2、树例如表达式:8+(3-1)*5则:建立二叉树,根节点都是运算符,叶子节点都是操作数。前序遍历:波兰序列(前缀表达式)中序遍历:原始表达式(中缀表达式)后序遍历:逆波兰序列(后缀表达式)整个过程既可以由栈来实现,也可以由二叉树来实现,下面分别来实现两种方法。1、栈中缀表达式——>后缀表...原创 2020-02-19 17:07:58 · 1576 阅读 · 0 评论 -
【浅谈各种排序算法】
浅谈各种排序算法目录浅谈各种排序算法main程序1、冒泡排序2、选择排序3、插入排序4、归并排序5、快速排序6、堆排序7、计数排序8、基数排序main程序int main(){ int n; cin>>n; vector<int> q(n+1); for(int i=1,t;i<=n...原创 2020-01-11 10:00:04 · 216 阅读 · 0 评论 -
【数据结构知识】红黑树【超详细版总结+代码】
前言 理解了一天,终于理清楚了,大家需要工程文件的,可以自行下载:红黑树工程文件最后,如果有什么理解不对的地方,希望大家不吝赐教,谢谢!红黑树一、性质节点非黑即红 根节点为黑 叶节点为黑(叶节点即末尾的NULL) 在双亲节点与孩子节点之间没有连续的红节点 从根节点出发到叶节点,黑节点树一样红黑树图示: ...原创 2019-07-27 16:18:16 · 189 阅读 · 0 评论 -
【数据结构知识】排序
前言 这一章主要讲解了各种排序算法,也是数据结构的最后一章了!【数据结构系列】【前一章:查找】【已完结】目录前言八、排序1、排序的稳定性2、内排序与外排序3、排序用到的结构与函数4、冒泡排序5、选择排序6、直接插入排序7、希尔排序8、堆排序9、归并排序10、快速排序11、总结八、排序概念:使得序列成为一...原创 2019-07-26 10:21:53 · 287 阅读 · 0 评论 -
【数据结构知识】查找
前言 这一章围绕查找,有顺序查找,折半查找,插值查找,斐波那契查找,关于线性索引查找,有稠密查找、分块索引和倒排索引。还有动态查找的数据结构二叉排序树,关于针对内存和外存之间存取而设计的B树。之间一步到位查找结果的散列表。【数据结构系列】【前一章:图】【后一章:排序】目录七、查找1、查找概论2、顺序表查找3、有序表查找(1)折半查找(2)插值查...原创 2019-07-24 16:25:50 · 341 阅读 · 0 评论 -
【数据结构知识】图【超详细版】
前言 这一章内容比较多,每一节的知识点都很复杂,需要花很长时间才能搞懂,希望看的人耐心一点。【数据结构系列】【前一章:树】【后一章:查找】六、图目录六、图1、图的顶点和边间的关系2、连通图3、图的存储结构(1)邻接矩阵(2)邻接表(3)十字链表(4)邻接多重表(5)边集数组4、图的遍历(1)深度优先遍历,类似于树的前序遍历...原创 2019-07-19 22:07:28 · 863 阅读 · 0 评论 -
【数据结构知识】链表
前言 由于链表之前学习过,最近又重新开始看,所以只对当初还有些不够理解的地方写下来,没有过多内容,只做简单分享而已!【数据结构系列】【前一章:时间复杂度计算】【后一章:栈和队列】二、链表(1)头指针和头节点头指针:指向链表第一个节点的指针;具有标识作用,所以常以头指针冠以链表的名字;无论链表是否为空,头指针不为空,且必须存在。头节点:放在第一个元素前面;头节点不...原创 2019-07-11 20:50:16 · 136 阅读 · 0 评论 -
【数据结构知识】栈和队列
前言 对栈和队列的介绍比较简单,其实当链表理解清楚后,对这两个的理解都会比较容易,有时间会对栈的四则运算应用那个地方画出示意图。【数据结构系列】【前一章:链表】【后一章:串】三、栈和队列1、栈存储结构:顺序存储和链式存储(1)两栈共享空间进栈时判断是否满栈条件:S->top1+1==S->top2即为满栈出栈时判断溢出条件:S->to...原创 2019-07-11 22:03:41 · 219 阅读 · 0 评论 -
【数据结构知识】时间复杂度的计算
前言 整体系列关于自己学习到的数据结构各种知识,给大家分享,欢迎大家进行讨论学习。一起学习算法!未完待续。。。【数据结构系列】【下一章:链表】一、时间复杂度计算推导大O阶:(1)用常数1取代运行时间中的所有加法常数。(2)在修改后的运行次数函数中,只保留最高阶项。(3)如果最高阶项存在且不是1,则去除与这个项相乘的常熟。得到结果即是大O阶。举例说明...原创 2019-07-11 15:59:07 · 510 阅读 · 0 评论 -
【数据结构知识】树
前言 这一章介绍了树,特别是对二叉树的介绍。【数据结构系列】【前一章:串】【后一章:图】目录前言五、树1、存储结构(1)双亲表示法(2)孩子表示法(3)孩子兄弟表示法2、二叉树的定义3、二叉树的性质4、二叉树的存储结构(1)顺序存储(2)链式存储5、二叉树的遍历6、推导遍历结果7、二叉树的建立8、线索二叉树9、...原创 2019-07-15 20:30:19 · 608 阅读 · 0 评论 -
【数据结构知识】串(主要是KMP算法讲解)【一看就懂】
前言 这一节主要针对字符串的包含算法KMP做详细介绍,关于求next数组有一点在这里要事先说明一下,就是关于需要匹配串的下标问题,在很多书本里面都是以1开始的,在这里为了和程序中下标一致,都是从0开始算起的,所以可能求出来的最后结果与你在其他地方看到的结果有冲突,开头看到这句话,可能还没理解。没关系,当你看完整篇博客,发现有疑问时,可以回过来看这句话。在写这篇博客之前,我也看过其...原创 2019-07-12 18:35:33 · 484 阅读 · 0 评论