图的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] 图的深度优先遍历相关推荐

  1. 实验报告C语言实现图的深度遍历,图的深度优先遍历的C语言实现.pdf

    图的深度优先遍历的C语言实现.pdf 维普资讯 九 江 职 业 技 术 学 院 学 报 JournalofJiujiangVocational&TechnicalCollege 2004.2 ...

  2. 数据结构 图的深度优先遍历 C

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Bool ...

  3. java语言实现图的深度优先遍历

    java语言实现图的深度优先遍历: 图的存储采用的是邻接矩阵存储的方式,对下面的无向图进行遍历 代码如下: public class Deep {int count=0;public static v ...

  4. 广度优先搜索生成树怎么画_图的深度优先遍历与广度优先遍历以及最小生成树...

    图的深度优先遍历 题目:写出附从每个顶点出发的一次深度优先搜索遍历序列.在纸上画出遍历过程和序列,提交截图. 错误回答 从A点开始遍历:0124-01324-0134-0324-034 从B点开始遍历 ...

  5. C++实现图的深度优先遍历和广度优先遍历

    图的深度和广度优先遍历 图的深度优先遍历 1.算法思想 2.邻接矩阵构造图 3.邻接表构造图 图的广度优先遍历 1.算法思想 2.邻接矩阵构造图 图的深度优先遍历 1.算法思想 (1)从图中的某个初始 ...

  6. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法学习笔记:图...

    图: 图结构区别于线性结构和树型结构,区别可见下图 逻辑上的图(graph)结构由顶点(vertex)和边(edge)组成. 一个图结构G包含顶点集合V和边集合E,任何两个顶点之间可以有一个边表示两者 ...

  7. 邻接矩阵存储图的深度优先遍历

    练习6.1 邻接矩阵存储图的深度优先遍历 (20 分) 试实现邻接矩阵存储图的深度优先遍历. 函数接口定义: void DFS( MGraph Graph, Vertex V, void (*Visi ...

  8. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构|图的邻接表与深度、广度优先搜索

    线性存储元素时,元素的关系也同时确定了.而非线性数据结构就不同了,需要同时考虑存储数据元素和数据元素的关系. 由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位 ...

  9. 树与图的深度优先遍历

    树与图的深度优先遍历*: 树其实也是图的一种 图: 分为有向图和无向图 图的储存: 第一种:邻接矩阵,就是一个二维数组,缺点:当点和边特别多的时候,存不下,一般用的比较少,而且非常浪费空间 第二种:邻 ...

  10. 数据结构笔记(二十七)-- 图的深度优先遍历

    图的深度优先遍历 一.图遍历定义 图的遍历是指从图的某个顶点出发遍历图,访遍图中其余顶点,并且使图中的每个顶点仅被访问一次的过程 二.深度优先遍历的思想 三.深度优先遍历举例 四.伪代码

最新文章

  1. tar从压缩包里解压出指定文件
  2. mysql写入时判断锁_MySQL 锁检查
  3. 如何查看dede版本信息
  4. 每日Ubuntu小技巧:一款轻量级的Email阅读器Geary
  5. hdu 1075 map
  6. MySQL查询实验报告_实验报告数据库的基本查询'
  7. 【rabbitmq安装教程】centos7下安装rabbitMQ
  8. SolarWinds 供应链攻击中的第四款恶意软件及其它动态
  9. Linux之crontab命令
  10. 腾讯X5WebView集成使用
  11. Python数据库编程
  12. 软件测试项目实例_餐饮系统(初稿,后续待整理)
  13. 公众平台模板消息所在行业_微信公众号模板消息群发工具免费注册试用7天
  14. Linux硬盘文件系统损坏,Linux常见的文件系统类故障该怎么解决-文件系统错误
  15. linux下c使用lzma_lzma文件及命令简介
  16. 计算机网络技术主要课程阐述,计算机网络技术专业实训课程体系研究
  17. Win11系统显示和隐藏语言栏的操作方法分享
  18. python解析word中表格_python读取word表格
  19. 安灯(Andon)系统,生产车间的得力助手
  20. C51---PWM 脉冲宽度调制

热门文章

  1. 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
  2. centos使用镜像源轻松配置golang+vscode的方法
  3. 2022-2028年中国钢筘行业市场研究及前瞻分析报告
  4. 2022-2028年中国工业固体废物综合利用行业深度调研及投资前景预测报告
  5. c++中的vector的常见使用
  6. SpringBoot (五) :SpringBoot整合mybatis
  7. 数据算法算力知识反绎学习
  8. bootstrap上传文件美化
  9. Relay IR表示
  10. 使用现代C++如何避免bugs(下)