图论 邻接矩阵建图+dfs遍历
来源:互联网 发布:缺少对象 javascript 编辑:程序博客网 时间:2024/04/28 07:35
第一次i建图,用的邻接矩阵。
#include<stdio.h>#include<string.h>#include<string>#include<iostream>#include<algorithm>#define inf 65535using namespace std;typedef struct mygraph{ int ver[1000]; int arc[100][100]; int num_ver,num_edge;} Graph;int vis[100];void create(Graph *G)//邻接矩阵建图{ int i,j,k; scanf("%d%d",&G->num_ver,&G->num_edge);//输入节点数和边数 for(i=0; i<G->num_ver; i++)//输入边集 scanf("%d",&G->ver[i]); for(i=0; i<G->num_ver; i++)//权值初始化 { for(j=0; j<G->num_edge; j++) G->arc[i][j]=inf; } int a,b,c; for(i=0; i<G->num_edge; i++)//输入边集 { scanf("%d%d%d",&a,&b,&c); G->arc[a][b]=c; G->arc[b][a]=c; }}void dfs(Graph *G,int i)//深搜{ int j; vis[i]=1; printf("%d ",G->ver[i]); for(j=0; j<G->num_ver; j++) if(G->arc[i][j]>0&&!vis[j])dfs(G,j);}int main(){ int i,j,k; Graph myG; create(&myG); memset(vis,0,sizeof(vis)); //深搜遍历 for(i=0; i<myG.num_ver; i++) if(!vis[i])dfs(&myG,i); printf("\n"); for(i=0; i<myG.num_ver; i++)//打印邻接矩阵 { for(j=0; j<myG.num_ver; j++) printf("%5d ",myG.arc[i][j]); printf("\n"); } return 0;}/*5 60 1 2 3 40 1 90 2 20 4 61 2 32 3 53 4 1*/测试数据中5 6代表节点数为5,边数为,6,下面是结点名0 1 2 3 4 下面几行中分别为为 弧尾(边的起点),弧首(边的终点),和边的权值
阅读全文
0 0
- 图论 邻接矩阵建图+dfs遍历
- 图的遍历DFS【邻接矩阵】
- 图的遍历-邻接矩阵-dfs
- 邻接矩阵遍历(无向图,邻接矩阵,DFS,BFS)
- 图的邻接矩阵和DFS遍历
- 邻接矩阵 遍历 DFS And BFS~~~
- 图之 宽度优先遍历 DFS 邻接矩阵建立的图
- 图的深度优先遍历DFS(邻接矩阵表示法)
- 图的邻接表 邻接矩阵 深度优先遍历DFS
- 无向图的邻接矩阵 -- DFS - 深度优先遍历
- 邻接矩阵实现图的存储,DFS,BFS遍历
- 邻接矩阵无向图的创建和遍历(dfs)
- 邻接矩阵的DFS 和 BFS 搜索遍历
- 邻接矩阵实现--图的深度优先遍历DFS和广度优先遍历BFS
- 图遍历_邻接矩阵
- 图的遍历(邻接矩阵)
- 邻接矩阵的图遍历
- 图的遍历--邻接矩阵
- linux输入子系统概念介绍
- PID调节经验
- Hdu2077汉诺塔IV
- WebAssembly
- 静态顺序表的实现
- 图论 邻接矩阵建图+dfs遍历
- IP地址的分类
- event.stopPropagation()需要注意的一点
- 不用实名的com域名,你还要再错过吗?
- Qt下单例模式的实现
- Activiti学习之对用户任务进行操作
- How to learn a complex system(draft)
- 7-28
- linux内核同步