前言:

这篇文章还是是为了帮助一些

像我这样的菜鸟

找到简单的题解

问题描述:

马上到寒假了,YHC准备去n大城市游玩。这些城市之间有些有航线,有些没有。由于YHC特别懒,现在他想请一位更更更更更蒟蒻的社长HBQ帮他查一下航线的数量,YHC在1号城市,输出所有他能游玩的城市编号。(小天才SZH提醒:请使用深度优先遍历)

输入描述

第一行:m和n,m代表城市数,n代表道路数量。

下面n行,每行两个数a、b,代表城市a、b之间有一条路。

输出描述

输出图的深度优先遍历

用例输入 1

5 5
1 2
1 3
1 5
2 4
3 5

用例输出 1

1 2 4 3 5

问题解析:

标准DFS代码

套用模板即可

注意不需要方向数组

代码部分:

首先是变量部分

#include<bits/stdc++.h>
using namespace std;
int a[10005][10005];
bool vis[10005];//记录是否走过
int n,m;

然后是DFS部分

void dfs(int step)
{if(step>n) return;//出口for(int i=1;i<=n;i++){if(a[step][i]==0) continue;//判断是否有边if(vis[i]) continue;//判断是否走过vis[i]=true;//标记已走过cout<<i<<" ";dfs(i);//递归}return;
}

最后是主函数部分

int main()
{int i,j,x,y;cin>>n>>m;for(i=1;i<=m;i++){cin>>x>>y;a[x][y]=a[y][x]=1;//由于是双向图}memset(vis,false,sizeof(vis));//初始化vis[1]=1;//起点标记cout<<1<<" ";dfs(1);//调用DFSreturn 0;
}

完整代码:

#include<bits/stdc++.h>
using namespace std;
int a[10005][10005];
bool vis[10005];
int n,m;
void dfs(int step)
{if(step>n) return;for(int i=1;i<=n;i++){if(a[step][i]==0) continue;if(vis[i]) continue;vis[i]=true;cout<<i<<" ";dfs(i);}return;
}
int main()
{int i,j,x,y;cin>>n>>m;for(i=1;i<=m;i++){cin>>x>>y;a[x][y]=a[y][x]=1;}memset(vis,false,sizeof(vis));vis[1]=1;cout<<1<<" ";dfs(1);return 0;
}

AC

图的遍历 DFS遍历(深学思维)相关推荐

  1. 图的遍历 BFS遍历(深学思维)

    前言: 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 问题描述: 马上到寒假了,JXY准备去n大城市游玩.这些城市之间有些有航线,有些没有.由于JXY特别懒,现在他想请一个更蒟蒻的人AY ...

  2. 第 n 小的质数 与 7 无关的数 计算多项式的值 三道水题(深学思维)

    前言: 额此篇没有前言太水了 First.第 n 小的质数 输入一个正整数 n, 求正整数范围中第 n 小的质数. 输入描述 一个不超过 30000 的正整数 n. 输出描述 第 n 小的质数. 用例 ...

  3. 结构体 身高问题(深学思维)

    前言: 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 描述 给定n个人的信息,每个人的信息包括姓名.身高和学号,编程输出身高最高的学生的信息.姓名仅包含大小写字母,长度不超过20,身高为 ...

  4. 无向图的邻接表表示法 及 深搜遍历DFS

    昨天有小朋友求助关于图的邻接表示及深搜,记得一年前的我学数据结构也搞的乱七八糟的.我就顺便学下吧,网上的代码都好规范的感觉,读那些代码的能力不够,自己把那些代码简化了下. 非常感谢那些小朋友给我这么一 ...

  5. 图——深度优先遍历(DFS)实现有向无环图的逆拓扑排序

    对图的深度遍历与对树的深度遍历思想类似,采用的是递归函数的办法. 如果是非连通图,则DFS遍历所有顶点即可. //Graph 图 //vertex 顶点,用一个int型变量表示//返回有向图G中顶点v ...

  6. 数据结构与算法(7-2)图的遍历(深度优先遍历DFS、广度优先遍历BFS)(分别用邻接矩阵和邻接表实现)

    目录 深度优先遍历(DFS)和广度优先遍历(BFS)原理 1.自己的原理图 2.官方原理图 一.邻接矩阵的深度优先遍历(DFS) 1.原理图 2. 过程: 3.总代码 二.邻接表的深度优先遍历(DFS ...

  7. DFS遍历图时的小技巧

    DFS遍历图时的小技巧 我们通常使用DFS遍历图时,用vis[i]=true;来标记访问过的节点,但是如果要让我们统计图中所有边的长度的话,如果我们还这样做的话,对于非环形图来说,没问题,但是对于环形 ...

  8. lisp遍历表中所有顶点_三十张图片让你彻底弄明白图的两种遍历方式:DFS和BFS...

    1 引言   遍历是指从某个节点出发,按照一定的的搜索路线,依次访问对数据结构中的全部节点,且每个节点仅访问一次.   在二叉树基础中,介绍了对于树的遍历.树的遍历是指从根节点出发,按照一定的访问规则 ...

  9. (王道408考研数据结构)第六章图-第三节:图的遍历(DFS和BFS)

    文章目录 一:图的深度优先遍历(DFS) (1)回溯算法和DFS A:回溯算法的本质 B:回溯算法的框架 C:全排列 (2)图的DFS A:DFS思想 B:动画演示 C:代码 二:图的广度优先遍历(B ...

最新文章

  1. 前端调用mysql异步_PHP 使用 Swoole – TaskWorker 实现异步操作 Mysql
  2. AIX系统maxuproc太小导致ORA-27300错
  3. 微信小程序 - 用户进入客服会话会在右下角显示可能要发送的小程序提示
  4. 机器学习——决策树的实现
  5. 我国四大常用坐标系及高程坐标系【转载】
  6. 知乎披露会员业务未来布局,融合社区内容深耕垂直领域
  7. Spring boot 2.x+oauth2实现单点登录:基础准备之Spring Security
  8. python提取身份证信息_Python3 简单抓取身份证地址信息
  9. MySQL学生信息管理系统
  10. python利用PyQt5制作QQ空间登入客户端
  11. 问题:宇视摄像机如何对接第三方录像机
  12. Glusterfs stripe卷挂载失败问题-客服端挂载提示:Mounting glusterfs on /test0 failed.
  13. LVGL8学习之msgbox
  14. Exynos 4412处理器IIC总线控制器(包括协议)
  15. 分享淘宝的IP地址库查询接口
  16. python 日期时间处理_如何使用Python处理日期和时间
  17. 最新版Nginx安装教程来了,快来看看
  18. 手机chrome没有声音_Chrome浏览器没有声音,解决windows10Chrome浏览器没有声音的问题...
  19. 如何通过3个月自学成为网络安全工程师!
  20. C语言求最大公约数,最小公倍数

热门文章

  1. FIR滤波器与IIR滤波器
  2. 【项目总结】基于SpringBoot+Ansj分词+正倒排索引的Java文档搜索引擎项目总结
  3. 如何让DIV元素永远居中显示
  4. 通过 Nginx 实现多机负载均衡
  5. Codeforces 545D - Queue
  6. Lua(二)数据类型+变量
  7. 进程(父进程、子进程、init进程)
  8. React实现(Web端)网易云音乐项目(二),错过了真的可惜呀
  9. content root修改问题
  10. w3cschool菜鸟教程离线版chm手册正式发布