图的遍历 DFS遍历(深学思维)
前言:
这篇文章还是是为了帮助一些
像我这样的菜鸟
找到简单的题解
问题描述:
马上到寒假了,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遍历(深学思维)相关推荐
- 图的遍历 BFS遍历(深学思维)
前言: 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 问题描述: 马上到寒假了,JXY准备去n大城市游玩.这些城市之间有些有航线,有些没有.由于JXY特别懒,现在他想请一个更蒟蒻的人AY ...
- 第 n 小的质数 与 7 无关的数 计算多项式的值 三道水题(深学思维)
前言: 额此篇没有前言太水了 First.第 n 小的质数 输入一个正整数 n, 求正整数范围中第 n 小的质数. 输入描述 一个不超过 30000 的正整数 n. 输出描述 第 n 小的质数. 用例 ...
- 结构体 身高问题(深学思维)
前言: 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 描述 给定n个人的信息,每个人的信息包括姓名.身高和学号,编程输出身高最高的学生的信息.姓名仅包含大小写字母,长度不超过20,身高为 ...
- 无向图的邻接表表示法 及 深搜遍历DFS
昨天有小朋友求助关于图的邻接表示及深搜,记得一年前的我学数据结构也搞的乱七八糟的.我就顺便学下吧,网上的代码都好规范的感觉,读那些代码的能力不够,自己把那些代码简化了下. 非常感谢那些小朋友给我这么一 ...
- 图——深度优先遍历(DFS)实现有向无环图的逆拓扑排序
对图的深度遍历与对树的深度遍历思想类似,采用的是递归函数的办法. 如果是非连通图,则DFS遍历所有顶点即可. //Graph 图 //vertex 顶点,用一个int型变量表示//返回有向图G中顶点v ...
- 数据结构与算法(7-2)图的遍历(深度优先遍历DFS、广度优先遍历BFS)(分别用邻接矩阵和邻接表实现)
目录 深度优先遍历(DFS)和广度优先遍历(BFS)原理 1.自己的原理图 2.官方原理图 一.邻接矩阵的深度优先遍历(DFS) 1.原理图 2. 过程: 3.总代码 二.邻接表的深度优先遍历(DFS ...
- DFS遍历图时的小技巧
DFS遍历图时的小技巧 我们通常使用DFS遍历图时,用vis[i]=true;来标记访问过的节点,但是如果要让我们统计图中所有边的长度的话,如果我们还这样做的话,对于非环形图来说,没问题,但是对于环形 ...
- lisp遍历表中所有顶点_三十张图片让你彻底弄明白图的两种遍历方式:DFS和BFS...
1 引言 遍历是指从某个节点出发,按照一定的的搜索路线,依次访问对数据结构中的全部节点,且每个节点仅访问一次. 在二叉树基础中,介绍了对于树的遍历.树的遍历是指从根节点出发,按照一定的访问规则 ...
- (王道408考研数据结构)第六章图-第三节:图的遍历(DFS和BFS)
文章目录 一:图的深度优先遍历(DFS) (1)回溯算法和DFS A:回溯算法的本质 B:回溯算法的框架 C:全排列 (2)图的DFS A:DFS思想 B:动画演示 C:代码 二:图的广度优先遍历(B ...
最新文章
- 前端调用mysql异步_PHP 使用 Swoole – TaskWorker 实现异步操作 Mysql
- AIX系统maxuproc太小导致ORA-27300错
- 微信小程序 - 用户进入客服会话会在右下角显示可能要发送的小程序提示
- 机器学习——决策树的实现
- 我国四大常用坐标系及高程坐标系【转载】
- 知乎披露会员业务未来布局,融合社区内容深耕垂直领域
- Spring boot 2.x+oauth2实现单点登录:基础准备之Spring Security
- python提取身份证信息_Python3 简单抓取身份证地址信息
- MySQL学生信息管理系统
- python利用PyQt5制作QQ空间登入客户端
- 问题:宇视摄像机如何对接第三方录像机
- Glusterfs stripe卷挂载失败问题-客服端挂载提示:Mounting glusterfs on /test0 failed.
- LVGL8学习之msgbox
- Exynos 4412处理器IIC总线控制器(包括协议)
- 分享淘宝的IP地址库查询接口
- python 日期时间处理_如何使用Python处理日期和时间
- 最新版Nginx安装教程来了,快来看看
- 手机chrome没有声音_Chrome浏览器没有声音,解决windows10Chrome浏览器没有声音的问题...
- 如何通过3个月自学成为网络安全工程师!
- C语言求最大公约数,最小公倍数