[C] 图的深度优先遍历
图的DFS遍历
首先我们需要知道什么是图
简单地说,图就是由一些小圆点(称为顶点)和连接这些小圆点的直线(称为边)组成的。例如上图是由五个顶点(编号为1,2,3,4,5)和五条边(1-2,1-3,1-5,2-4,3-5)组成。
接下来我将会展示从1号顶点以DFS算法遍历这张图的代码。
每个顶点是第几个被访问到的,这个数字,称为时间戳。(在本段代码里没有体现)
代码实现
#include<stdio.h>
int book[2000], a[2000][2000];
int sum, n, m;void dfs(int cur)
{int i;printf("%d ", cur);sum++;if (sum == n)return;for (i = 1; i <= n; i++){if (a[cur][i] == 1 && book[i] == 0){book[i] = 1;dfs(i);}}return;
}int main()
{int i, j, m, x, y;scanf("%d %d", &n, &m);for (i = 1; i <= m; i++){scanf("%d %d", &x, &y);a[x][y] = 1;a[y][x] = 1;}book[1] = 1; //从第一个点出发dfs(1);return 0;
}
运行结果:
这张图DFS遍历顺序为1 2 4 3 5
[C] 图的深度优先遍历相关推荐
- 实验报告C语言实现图的深度遍历,图的深度优先遍历的C语言实现.pdf
图的深度优先遍历的C语言实现.pdf 维普资讯 九 江 职 业 技 术 学 院 学 报 JournalofJiujiangVocational&TechnicalCollege 2004.2 ...
- 数据结构 图的深度优先遍历 C
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Bool ...
- java语言实现图的深度优先遍历
java语言实现图的深度优先遍历: 图的存储采用的是邻接矩阵存储的方式,对下面的无向图进行遍历 代码如下: public class Deep {int count=0;public static v ...
- 广度优先搜索生成树怎么画_图的深度优先遍历与广度优先遍历以及最小生成树...
图的深度优先遍历 题目:写出附从每个顶点出发的一次深度优先搜索遍历序列.在纸上画出遍历过程和序列,提交截图. 错误回答 从A点开始遍历:0124-01324-0134-0324-034 从B点开始遍历 ...
- C++实现图的深度优先遍历和广度优先遍历
图的深度和广度优先遍历 图的深度优先遍历 1.算法思想 2.邻接矩阵构造图 3.邻接表构造图 图的广度优先遍历 1.算法思想 2.邻接矩阵构造图 图的深度优先遍历 1.算法思想 (1)从图中的某个初始 ...
- 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法学习笔记:图...
图: 图结构区别于线性结构和树型结构,区别可见下图 逻辑上的图(graph)结构由顶点(vertex)和边(edge)组成. 一个图结构G包含顶点集合V和边集合E,任何两个顶点之间可以有一个边表示两者 ...
- 邻接矩阵存储图的深度优先遍历
练习6.1 邻接矩阵存储图的深度优先遍历 (20 分) 试实现邻接矩阵存储图的深度优先遍历. 函数接口定义: void DFS( MGraph Graph, Vertex V, void (*Visi ...
- 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构|图的邻接表与深度、广度优先搜索
线性存储元素时,元素的关系也同时确定了.而非线性数据结构就不同了,需要同时考虑存储数据元素和数据元素的关系. 由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位 ...
- 树与图的深度优先遍历
树与图的深度优先遍历*: 树其实也是图的一种 图: 分为有向图和无向图 图的储存: 第一种:邻接矩阵,就是一个二维数组,缺点:当点和边特别多的时候,存不下,一般用的比较少,而且非常浪费空间 第二种:邻 ...
- 数据结构笔记(二十七)-- 图的深度优先遍历
图的深度优先遍历 一.图遍历定义 图的遍历是指从图的某个顶点出发遍历图,访遍图中其余顶点,并且使图中的每个顶点仅被访问一次的过程 二.深度优先遍历的思想 三.深度优先遍历举例 四.伪代码
最新文章
- tar从压缩包里解压出指定文件
- mysql写入时判断锁_MySQL 锁检查
- 如何查看dede版本信息
- 每日Ubuntu小技巧:一款轻量级的Email阅读器Geary
- hdu 1075 map
- MySQL查询实验报告_实验报告数据库的基本查询'
- 【rabbitmq安装教程】centos7下安装rabbitMQ
- SolarWinds 供应链攻击中的第四款恶意软件及其它动态
- Linux之crontab命令
- 腾讯X5WebView集成使用
- Python数据库编程
- 软件测试项目实例_餐饮系统(初稿,后续待整理)
- 公众平台模板消息所在行业_微信公众号模板消息群发工具免费注册试用7天
- Linux硬盘文件系统损坏,Linux常见的文件系统类故障该怎么解决-文件系统错误
- linux下c使用lzma_lzma文件及命令简介
- 计算机网络技术主要课程阐述,计算机网络技术专业实训课程体系研究
- Win11系统显示和隐藏语言栏的操作方法分享
- python解析word中表格_python读取word表格
- 安灯(Andon)系统,生产车间的得力助手
- C51---PWM 脉冲宽度调制
热门文章
- 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
- centos使用镜像源轻松配置golang+vscode的方法
- 2022-2028年中国钢筘行业市场研究及前瞻分析报告
- 2022-2028年中国工业固体废物综合利用行业深度调研及投资前景预测报告
- c++中的vector的常见使用
- SpringBoot (五) :SpringBoot整合mybatis
- 数据算法算力知识反绎学习
- bootstrap上传文件美化
- Relay IR表示
- 使用现代C++如何避免bugs(下)