数据结构—邻接矩阵的DFS



原理:参考趣学数据结构



代码:

#include<stdio.h>
#include<stdlib.h>
#define N 100
#define elemType int
//const int MAX_INT = (1 << 31) - 1;
//const int MAX_INT = 0X7fffffff;
#define  INF    (((unsigned int)(-1)) >> 1)
bool visited[N];
typedef struct GraphMatrix {elemType vNode[N][N];int vNum, eNum;
}GraphMatrix;
void initGMaxtix(GraphMatrix &G) {//初始化邻接矩阵printf("输入顶点数和边数\n");scanf_s("%d%d", &G.vNum, &G.eNum);for (int i = 0; i < G.vNum; i++) {//初始化邻接矩阵for (int j = 0; j < G.vNum; j++) {G.vNode[i][j] = INF;}}printf("输入顶点v1到顶点v2和其边的权重\n");for (int i = 0; i < G.eNum; i++) {int v1, v2, weights;scanf_s("%d%d%d", &v1, &v2, &weights);G.vNode[v1][v2] = weights;}
}
void print11(GraphMatrix G) {printf("邻接矩阵如下:\n");for (int i = 0; i < G.vNum; i++) {for (int j = 0; j < G.vNum; j++) {printf("%d ", G.vNode[i][j]);}printf("\n");}
}
void DFSMatrixGraph(GraphMatrix G, int u) {//DFS遍历邻接矩阵visited[u] = true;printf("%d ", u);for (int i = 0; i < G.vNum; i++) {if (!visited[i] && G.vNode[u][i] < INF) {DFSMatrixGraph(G, i);}}
}
int main() {GraphMatrix G;initGMaxtix(G);print11(G);printf("\n");for (int i = 0; i < G.vNum; i++) {visited[i] = false;}printf("DFS遍历邻接矩阵\n");DFSMatrixGraph(G, 0);printf("\n");system("pause");return 0;
}

测试截图:

时间复杂度O(n x n),空间复杂度O(n)

如果存在什么问题,欢迎批评指正!谢谢!

数据结构---邻接矩阵的DFS相关推荐

  1. 数据结构---邻接矩阵的BFS

    数据结构-邻接矩阵的BFS 原理:参考趣学数据结构 代码: 队列代码: #pragma once #define elemType int #define N 100 #include<stdl ...

  2. 婴儿名字[连通分量之邻接矩阵与DFS]

    邻接矩阵与DFS 前言 一.婴儿名字 二.邻接矩阵与DFS 总结 参考文献 前言 图的基本功之一,给定节点和边(节点对),统计连通分量的个数,当然也可以以其他形式给出,例如婴儿名字.通过其可练习常见图 ...

  3. Java数据结构——邻接矩阵+邻接表

    文章目录 一.邻接矩阵 二.邻接表 一.邻接矩阵 1. 定义 vexs[](存储顶点)和 arcs[][](存储边关系,叫邻接矩阵)集合.因此,用一个一维数组存放图中所有顶点数据: 用一个二维数组存放 ...

  4. [数据结构]邻接矩阵和邻接表存储的图DFS,BFS算法时间复杂度分析

  5. 邻接矩阵/图/DFS/BFS

    目录 1.邻接矩阵的表示 2.邻接矩阵的存储 3.采用邻接矩阵表示法创建无向网 4.基于邻接矩阵的图上各类操作 5.DFS 6.BFS 7.测试程序(待完成) 权与网 连通分量(强连通分量) 1.邻接 ...

  6. 数据结构基础(21) --DFS与BFS

    DFS 从图中某个顶点V0 出发,访问此顶点,然后依次从V0的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和V0有路径相通的顶点都被访问到(使用堆栈). //使用邻接矩阵存储的无向图的深度 ...

  7. (五)算法与数据结构 | BFS和DFS

    文章目录 0. 简介 1. 广度优先搜索 2. 深度优先搜索 3. 总结 0. 简介 广度优先搜索(BreadthFirstSearch,BFS{\rm Breadth\ First\ Search, ...

  8. 数据结构——邻接矩阵表示图(c语言)

    邻接矩阵(Adjacency Matrix)是表示顶点之间相邻关系的矩阵.设G=(V,E)是一个图,其中V={v1,v2,-,vn} [1] .G的邻接矩阵是一个具有下列性质的n阶方阵: ①对无向图而 ...

  9. 数据结构—邻接矩阵存储法代码实现

    邻接矩阵法 图的邻接矩阵(adjacency matrix)是一种采用邻接矩阵数组表示顶点之间相邻关系的存储结构.设G=(V,E)是含有n(n>0)个顶点的图,各顶点的编号为0~(n-1),则G ...

最新文章

  1. Cron 表达式极速参考
  2. 异步回调地狱_如何逃避异步/等待地狱
  3. 第一家公立大学支持比特币支付学费
  4. [NIKON D80]实习纪实 苏州工业之美
  5. jar包使用以及生成
  6. Java Lambda 表达式的常见应用场景
  7. 洛谷 P4245 【模板】任意模数NTT
  8. android 适合mvp模式,Android中的MVP:如何使Presenter层系统化?
  9. 机器学习基础(五十六)—— tanh、sign 与 softsign
  10. WebForm控件多字段绑定
  11. 如何把计算机管理的服务删掉,如何将win7电脑服务列表中残留的服务选项删除掉?...
  12. ByteBuf详解和Netty中的拆包粘包原理解析
  13. windows10视频缩略图不显示怎么办?
  14. Excel数据透视表:查看数据的频率分布
  15. jupyter notebook出现kernel waitting,please wait一系列错误的解决办法
  16. 集成创新,拓展兼容--红旗Linux桌面版5.0隆重发布(转)
  17. 炉石传说酒馆战棋一键拔线(windows)
  18. 锐捷交换机配置snmp版本_网工收藏必备——思科交换机常用SNMP配置命令分享
  19. 做一个外贸网站大概需要多少钱?英文外贸网站建设制作费用分析!
  20. 2020研究生考试总结(哈工程软件)

热门文章

  1. Android之AsyncTask两种线程池分析和总结
  2. Android之webview与js交互
  3. php基础教程 第十一步 面向对象
  4. 【C语言简单说】七:自定义函数(2)
  5. mysql关系数据库引擎_MySQL数据库引擎详解
  6. 为何解析浏览器地址参数会为null_request 包中出现 DNS 解析超时的探究
  7. ajax速度axio速度,[转]Ajax Fetch Axios之间的详细区别以及优缺点
  8. oracle中行数少于1000,oracle中in的个数超过1000的解决办法
  9. 连接数学和美学的--西奥多罗斯螺旋
  10. 他毕业于北师大,编写了我国首套数学教材,陈景润华罗庚都崇拜他