当前位置: 首页 > news >正文

图论1-问题 C: 算法7-6:图的遍历——广度优先搜索

题目描述
广度优先搜索遍历类似于树的按层次遍历的过程。其过程为:假设从图中的某顶点v出发,在访问了v之后依次访问v的各个未曾被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻接点都被访问到。若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起始点。重复上述过程,直至图中所有顶点都被访问到为止。
其算法可以描述如下:

在本题中,读入一个无向图的邻接矩阵(即数组表示),建立无向图并按照以上描述中的算法遍历所有顶点,输出遍历顶点的顺序。

输入
输入的第一行包含一个正整数n,表示图中共有n个顶点。其中n不超过50。
以后的n行中每行有n个用空格隔开的整数0或1,对于第i行的第j个0或1,1表示第i个顶点和第j个顶点有直接连接,0表示没有直接连接。当i和j相等的时候,保证对应的整数为0。
输入保证邻接矩阵为对称矩阵,即输入的图一定是无向图。
输出
只有一行,包含n个整数,表示按照题目描述中的广度优先遍历算法遍历整个图的访问顶点顺序。每个整数后输出一个空格,并请注意行尾输出换行。
样例输入 复制
4 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 
样例输出 复制
0 3 1 2 
提示
在本题中,需要熟练掌握图的邻接矩阵存储方式。在建立完成无向图之后,需要严格按照题目描述的遍历顺序对图进行遍历。另外,算法中描述的FirstAdjVex函数和NextAdjVex函数,需要认真的自行探索并完成。在本题中需要使用队列结构,需要对队列的概念进行复习。
通过这道题目,应该能够对图的广度优先搜索建立更加直观和清晰的概念.
题解
t
tii
#include<bits/stdc++.h>
using namespace std;
using ll = long long;const int N = 105;int mp[N][N];int n;bool vis[N];void dfs(int u){cout << u << ' ';vis[u] = true;for(int i = 0;i < n;i ++){if(mp[u][i] == 1 && !vis[i]){dfs(i);}}
}
void bfs(int u){queue<int>q;q.push(u);while(!q.empty()){int cu = q.front();q.pop();cout << cu << ' ';vis[cu] = true;for(int i = 0;i < n;i ++){if(mp[cu][i] == 1 && !vis[i]){vis[i] = true;q.push(i);}      }}
}int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin >> n;for(int i = 0;i < n;i ++)for(int j = 0;j < n;j ++)cin >> mp[i][j];bfs(0);return 0;
}

http://www.lryc.cn/news/521931.html

相关文章:

  • 基于 STM32 的多功能时间管理器项目
  • Java工程结构:二方库依赖规约
  • Django自带admin管理系统使用
  • Jmeter 简单使用、生成测试报告(一)
  • 手摸手实战前端项目CI CD
  • 【Elasticsearch】搜索类型介绍,以及使用SpringBoot实现,并展现给前端
  • K8S中的Pod调度之亲和性调度
  • 高等数学学习笔记 ☞ 不定积分的积分法
  • 【HTTP】详解
  • cursor重构谷粒商城01——为何要重构谷粒商城
  • 如何在 ASP.NET Core 中实现速率限制?
  • STM32-笔记43-低功耗
  • Facebook 隐私风波:互联网时代数据安全警钟
  • Java 中的 ZoneOffset
  • amis模板语法、数据映射与表达式
  • 频域增强通道注意力机制EFCAM模型详解及代码复现
  • GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效
  • BPG图像库和实用程序(译)
  • 简述1个业务过程:从客户端调用接口,再到调用中间件(nacos、redis、kafka、feign),数据库的过程
  • 01.02、判定是否互为字符重排
  • 什么是.NET中的反射,它有哪些应用场景
  • Linux离线部署ELK
  • 解决 chls.pro/ssl 无法进入问题
  • Rust 游戏开发框架指南
  • hadoop3.3和hive4.0安装——单节点
  • centos安装golang
  • 博图 linucx vmware
  • Service Work离线体验与性能优化
  • Unity 语音转文字 Vosk 离线库
  • VSCode连接Github的重重困难及解决方案!