
DFS,BFS,图
图有关的算法
Strive_LiJiaLe
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关键路径——C++版
知识储备:1.理解拓扑排序2.使用邻接表构造图#include "test.h"#include <iostream>#include <cstdio>#include <vector>#include <cstring>#include <queue>#include <climits>using namespace std;const int MAXN = 100;const int INF = INT8_M原创 2021-09-15 20:44:33 · 299 阅读 · 0 评论 -
并查集简单应用——判断图的连通性
将节点进行初始化,然后每加入一条边就建立连接,最后的连通分量个数就是不同集合的个数,而不同集合的个数就是根节点不变(初始化本身)的个数。#include <cstdio>using namespace std;const int MAXN = 1000;int father[MAXN];int height[MAXN];void Initial(int n ){ for (int i = 0; i < n; ++i) { father[i] =原创 2021-09-13 20:57:53 · 402 阅读 · 0 评论 -
并查集应用——Kruskal(最小生成树)C++
生成树:连通图的极小连通子图最小生成树:生成树中权值最小的那棵。并查集:用来判断每次新加入边的顶点是否已经存在于正在建立的最小生成树集合中,若已包含,舍去;否则加入进行合并。#include "test.h"#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 1000;struct Edge{ int from原创 2021-09-13 21:42:32 · 182 阅读 · 0 评论 -
拓扑排序——C++
#include <iostream>#include <cstdio>#include <vector>#include <cstring>#include <queue>#include <climits>using namespace std;const int MAXN = 100;vector<int> graph[MAXN];int inDegree[MAXN];//记录每个顶点的入度ve原创 2021-09-13 23:06:57 · 489 阅读 · 0 评论 -
Dijkstra——C++版本完整代码
#include <iostream>#include <cstdio>#include <vector>#include <cstring>#include <queue>#include <climits>using namespace std;const int MAXN = 100;const int INF = INT8_MAX;//利用邻接表,定义向量组表示以该点为顶点的信息,向量组下标就是fromstr原创 2021-09-13 22:38:59 · 316 阅读 · 0 评论 -
图的全部算法代码
最小生成树,最短路径,深度优先,广度优先,图的建立与销毁#include <stdio.h>#include <cstdlib>#include <cassert>#include <cstring>#define MAXV 5 //最大顶点个数#define INF 32767 //定义 ∞typedef struct vertex { int number; //顶点的编号}VertexType;原创 2021-04-20 16:42:16 · 421 阅读 · 0 评论 -
理解搜索,深度优先,广度优先,经典例题
文章目录前言一、搜索二、举例讲解状态转移宽度优先搜索深度优先搜索总结前言搜索有着很重要的作用,计算机的运作过程就是搜索的过程。一、搜索搜索分为4步:1.状态空间 (结点的数据类型)2.状态转移 (父节点与子节点的关系)3.起始状态 (根节点)4.目标状态 (出口)理清了问题中的这四步就能构造出搜索树,进而根据搜索树写出代码。二、举例讲解问题:从点A到达点E。如果加入最少花费的条件,那么调整如下:可以看出:解决问题最重要的就是理清状态转原创 2021-02-07 13:44:40 · 1429 阅读 · 1 评论