算法导论(图论)C/C++
文章平均质量分 92
代码实现
不导翁
这个作者很懒,什么都没留下…
展开
-
PTA 好后缀 (10分)(字符串匹配+前缀函数)
7-8 好后缀 (10分)我们称一个字符串的后缀为好后缀,如果它满足如下条件:(1)它在字符串中至少出现2次;(2)满足条件(1)的最长者。请编写程序计算一个字符串的好后缀长度,注意一个字符串不能称为自己的后缀。输入输出描述输入格式:输入为一个字符串,包含不超过10^5个字母。输出格式:输出为一个整数,表示输入字符串的好后缀长度。样例输入样例1:xacbacba输出样例1:4输入样例2:yxxabacaba输出样例2:3输入样例3:abc输出样例3:0原创 2020-11-12 15:31:43 · 1910 阅读 · 0 评论 -
Floyd算法 多源最短路径
解决稠密图较好准备工作#include <iostream> //Floyd算法解决稠密图时更好#include <algorithm>#include <climits>#include <cstring>using namespace std;const int MaxV = 100;/*定义边*/typedef stru...原创 2020-03-21 21:42:06 · 130 阅读 · 0 评论 -
Dijkstra最短路径(稠密图+稀疏图)堆优化
伪代码描述时间复杂度方法1: 解决稠密图#include <iostream> //解决稠密图时#include <algorithm>using namespace std;const int MaxV = 100;const int INF = 10000; //表示无穷大,Weight < INF/*定义边*/typedef struct...原创 2020-03-19 14:17:52 · 2238 阅读 · 1 评论 -
Kruskal最小生成树(最小堆 + 并查集)
伪代码邻接表储存MST/*图的邻接表结构定义*/typedef struct ENode{ int v1, v2; int Weight;} * Edge;struct AdjVNode{ int AdjV; int Weight; AdjVNode *Next;};typedef struct VNode{ AdjVNode *EdgeFirst; string D...原创 2020-03-18 18:35:19 · 603 阅读 · 0 评论 -
最小生成树Prim算法 +索引优先队列
算法步骤从0号顶点开始,加入队列(注意是最小优先队列)原创 2020-03-18 10:50:54 · 292 阅读 · 0 评论 -
强连通分量Tarjan算法
参考大佬的分析:全网最!详!细!Tarjan算法讲解 https://blog.csdn.net/hurmishine/article/details/75248876原创 2020-03-14 15:33:44 · 123 阅读 · 0 评论 -
强连通分量Kosaraju算法
qq原创 2020-03-13 20:08:29 · 122 阅读 · 0 评论 -
拓扑排序(DFS)
拓扑排序如何用DFS实现??首先了解DFS生成树, ([图片链接]:(https://oi-wiki.org/graph/scc/))根据拓扑排序的定义可以知道,只有图没有环路时才有拓扑排序,由上述DFS生成树可知,当图的DFS生成树没有反祖边时没有环路,这时就可以找出图的拓扑排序(建议画一张图,然后用DFS遍历一遍,就能理解为什么得出拓扑排序)该算法采用 DFS+栈首先结构定义#in...原创 2020-03-12 11:03:09 · 8897 阅读 · 1 评论 -
拓扑排序(Kahn 算法)
算法步骤遍历所有图顶点, 把入度为0的顶点入队当队列不为空时, 取出一个顶点v输出将与v相邻的顶点入度减1, 然后把减1后入度为0的顶点入队重复2, 3步, 直到队列为空, 算法结束代码实现#include <iostream>#include <algorithm>#include <cstdlib>using namespace std...原创 2020-03-11 10:25:12 · 925 阅读 · 0 评论 -
图的遍历(BFS)
邻接矩阵储存的图#include <iostream>#include <algorithm>#include <cstdlib>using namespace std;const int MaxV = 100;typedef struct QNode{ int *Data; int Front, Rear; int MaxSize;} *...原创 2020-03-10 16:28:49 · 136 阅读 · 0 评论 -
图的遍历(DFS)
邻接矩阵储存的图#include <iostream> //DFS访问无向图(邻接矩阵)#include <algorithm>#include <cstdlib>using namespace std;const int MaxV = 100;typedef struct GNode{ int Nv, Ne; int F[MaxV][Max...原创 2020-03-10 00:05:04 · 151 阅读 · 0 评论 -
图的存储结构
邻接矩阵/* 图的邻接矩阵表示法采用程序化的步骤:1. 建立包含全部顶点但没有边的图2. 逐条插入边, 从而建立一个图*/#include <iostream>#include <algorithm>#include <climits>#include <cstdlib>#include <cstring>using...原创 2020-03-09 17:28:31 · 114 阅读 · 1 评论