图论
介绍图论的一些题,最短路,以及最小生成树,树的遍历等
针麻烦
敲代码怎么你了 l(T_T)l
展开
-
二分图的匈牙利算法
好久没有发过图论的文章了,今天我们继续介绍图论关于二分图的经典算法匈牙利算法,用来解决最大匹配的问题,时间复杂度为,可以看出还是很高效的,思想主要为贪心,解决问题时如果还没有匹配就立刻匹配一个,如果已经匹配了为一个已经匹配过的找一个他还能匹配的下家,并且在匹配之后还要建立一个检查是否匹配过的bool数组将他变为true,....原创 2024-04-16 23:49:47 · 255 阅读 · 0 评论 -
二叉树已知后序中序排列,求层序
上文我们学到了二叉树的前序,中序,后序遍历以及二叉树的存储方式,现在我们将继续学习二叉树已知后序中序排列求层序的方法,我们需要了解后序中序的性质,并进行dfs建好树,然后用bfs来层序遍历树。原创 2024-04-08 12:17:54 · 705 阅读 · 0 评论 -
二叉树的前序,中序,后序,遍历
首先 一棵二叉树由根结点、左子树和右子树三部分组前序遍历(根在前,从左往右,一棵树的根永远在左子树前面,左子树又永远在右子树前面 )中序遍历(根在中,从左往右,一棵树的左子树永远在根前面,根永远在右子树前面)后序遍历(根在后,从左往右,一棵树的左子树永远在右子树前面,右子树永远在根前面)在刚学数据结构的时候我们学会了如何用指针存储树,在这里本蒟蒻博主写的是数组表示树的存储,和指针存储类似,重点记住这种方式只能用于二叉树!!!原创 2024-04-08 00:27:45 · 214 阅读 · 0 评论 -
图的深度遍历,宽度遍历
上文我们介绍了二叉树的存储和遍历,现在我们继续探讨树的存储和遍历,树的存储我们可以适用邻接矩阵(vector g[N]来存储,通过dfs来深度遍历,bfs中用queue进行宽度遍历。原创 2024-04-08 00:37:08 · 308 阅读 · 0 评论 -
朴素的Dijstar算法
朴素的Dijstar算法适用于没有负权边的图,时间复杂度为0n的平方,因此适用于稠密图,用邻接矩阵存(用邻接矩阵有2个方法存,一个是g[N][N],另外一种是vector q[N]),建议后面一种。原创 2024-04-08 00:02:11 · 176 阅读 · 0 评论 -
堆优化板的Dijkstar
堆优化的Dijkstar算法适用于没有负权边的图,时间复杂度为Omlogm,因此适合稀疏图,堆优化的Dijkstar需要用邻接表来存(邻接表也有两种存法,一种结构体的,一种我下面写的)。堆优化的Dijkstar思路与朴素的Dijkstar思路相同只是引入了堆可以更快的找到距离最小的边长。原创 2024-04-08 00:12:53 · 260 阅读 · 1 评论 -
Bellman_ford算法
Bellman_ford适用于有负权边的最短路问题,时间复杂度为Onm。原创 2024-04-08 12:25:29 · 245 阅读 · 0 评论 -
Spfa算法
Spfa算法是Bellman_ford算法的优化,时间复杂度为Onm,实际上低于这个数,Spfa需要邻接表存,有些题会卡Spfa算法。。。原创 2024-04-08 12:32:11 · 233 阅读 · 0 评论 -
Prim的朴素做法
Prim算法主要解决最小生成树问题,时间复杂度为On方,适用于稠密图,写法和Dijkstar的朴素算法差不多。原创 2024-04-08 12:37:21 · 294 阅读 · 0 评论