图-结构

Posted wei-huan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图-结构相关的知识,希望对你有一定的参考价值。

邻接矩阵

适用于小型的图,对于稀疏图很浪费,可用二维数组实现

邻接表

适用于稀疏图,可用vector实现

求最小生成树

利用 Kruska 算法,可以直接保存边 u,v,w,以边的编号为索引
利用 prim 算法,需要每次取得最小的顶点,类似与 Dijkstra 算法,可以用邻接矩阵完成

求最短路径

Floyd 正权边,三重循环,首先枚举k,中间点

Dijkstra 从未使用的点中找一个距离最小的点,可以用邻接矩阵实现O(V^2),也可以用邻接表实现,用优先队列保存每个点到源点的最小路径长度和编号,时间复杂度O(VE)

BellFord 可以查找负权边,判定有没有负环,若有环则更新点d[u]的次数会大于N次,可以循环边 时间复杂度O(VE)

常见实现

枚举点很方便,但是浪费空间,实现简单

int G[maxn][maxn];



能通过点查找到边,存储方便,不利于枚举边

vector<Edge> G[maxn];   



枚举边很方便,点也很方便,G的下标即代表点,保存的是边的编号,能轻松对所有便进行排序。

vetor<Edge> eg;
int G[man];













以上是关于图-结构的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

如何将 r ggplot 图存储为 html 代码片段

分享几个实用的代码片段(第二弹)

分享几个实用的代码片段(第二弹)