博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图的储存方式4.28
阅读量:5228 次
发布时间:2019-06-14

本文共 1487 字,大约阅读时间需要 4 分钟。

// 邻接矩阵遍历#include
#include
using namespace std;#define N 10010 int x,y,z,n,m,a[N][N],vis[N];void dfs(int x){ vis[x]=1; for(int i=1;i<=n;i++) if(a[x][i]&&!vis[i])//相连的 但是没有遍历过的 dfs(i);}int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) scanf("%d%d%d",&x,&y,&z); a[x][y]=z; dfs(1); return 0;}
//邻接表 #include
#include
using namespace std;#define N 10010 int x,y,z,n,cnt,v[N],next[N],head[N],len[N];void add_edge(int x,int y,int z)//head为表头 { v[++cnt]=y; next[cnt]=head[x]; head[x]=cnt; len[cnt]=z;}void dfs(int x){ vis[x]=1; for(int i=head[x];i;i=next[i]){ if(!vis[v[i]]){ dfs(v[i]); } }}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ scanf("%d%d",&x,&y,&z); add_edge(x,y,z); } return 0;}
//vector 储存图 #include
#include
#include
using namespace std;#define N 10010int vis[N],x,y,z;vector
>vec[N];//> >中间要有空格 void dfs(int x){ vis[x]=1; for(int i=0;i
//前向星#include
#include
#include
using namespace std;#define N 10010struct st{
int x,y,z;}a[N];int vis[N],cnt,L[N],R[N];bool cmp(st a,st b){
return a.x

邻接矩阵:

矩阵算法 位运算时方便

边集数组 前向星:

没有将边挂在点上 而是储存每条边的信息 一般不需要遍历整张图  常用于并查集 方便排序

 

转载于:https://www.cnblogs.com/zzyh/p/6783272.html

你可能感兴趣的文章
SSH框架整合总结
查看>>
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>
Python面向对象之:三大特性:继承,封装,多态以及类的约束
查看>>
四年多的恋爱说没有就没有了
查看>>
微信小程序实现类似JQuery siblings()的方法
查看>>
2016年11月总结
查看>>
使用git和github进行协同开发流程
查看>>
12月15日smarty模板基本语法
查看>>
不能将值 NULL 插入列
查看>>
javascript模拟继承
查看>>
Java集合框架-HashSet与HashMap
查看>>
查询速度慢的原因很多,常见如下几种 :
查看>>
Git安装教程(三)分支管理之分支管理策略
查看>>
ORA-06413连接未打开的错误的原因和解决方法
查看>>
递归的逻辑(4)——递归与分形
查看>>
6.凑算式
查看>>
基于RBAC模式的权限管理系统设计概要
查看>>
leetcode 790. Domino and Tromino Tiling
查看>>
计算广告学学习(一) 广告的目的与有效性模型
查看>>