算法笔记 --第十章 提高篇(4) --图算法专题

读书笔记

图的定义

图由顶点Vertex边Edge组成,每条边的两端都必须是图的两个顶点。而记号G(V,E)表示图G的顶点集合为V,边集为E。
一般来说:图可以分为有向图无向图。有向图是所有边都有方向,无向图是所有边都是双向的。
顶点的是指和该顶点相连的边的条数。对于有向图来说:顶点的出边条数称为该顶点的出度,顶点的入边条数称为该顶点的入度
顶点和边都可以有权重。顶点的权值称为点权,边的权值称为边权。


图的存储

邻接矩阵

const int maxn = 1001;
int G[maxn][maxn];  

算法笔记给出的建议是邻接矩阵只适合顶点数目不太大(一般不超过1000)的题目。

邻接表

怎么存储

const int maxn = 10001;
vector<int> Adj[maxn];

Adj[0],Adj[1]…都是边(vector<int>)。maxn代表顶点。

权值表示

struct Node{
	int v;   //边的终点编号
	int w;   // 边权
}
vector<Node> Adj[maxn];



图的遍历

DFS

BFS

猜你喜欢

转载自blog.csdn.net/weixin_41256413/article/details/84663495