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

图的深度和广度优先遍历

题目描述
以邻接矩阵给出一张以整数编号为顶点的图,其中0表示不相连,1表示相连。按深度和广度优先进行遍历,输出全部结果。要求,遍历时优先较小的顶点。如,若顶点0与顶点2,顶点3,顶点4相连,则优先遍历顶点2.

输入
顶点个数
邻接矩阵

输出
DFS
深度遍历输出
WFS
广度遍历输出,

样例输入
3
0 1 1
1 0 1
1 1 0

样例输出
DFS
0 1 2
1 0 2
2 0 1
WFS
0 1 2
1 0 2
2 0 1
 

#include <iostream>
#include <queue>using namespace std;
int* visit;
int num;
int** edge;void DFS(int n) {visit[n] = 1;cout << n << " ";for (int i = 0; i <num; i++) {//判断领顶点if (edge[n][i] == 1 && visit[i] == 0)DFS(i);}
}void BFS(int n) {int temp = n;queue<int>q;q.push(temp);while (!q.empty()) {int t = q.front();q.pop();if (visit[t] == 0) {//没访问过就输出cout << t << " ";visit[t] = 1;}for (int i = 0; i <num; i++) {//把他的领顶点放到队中if (edge[t][i] == 1 && visit[i] == 0) {q.push(i);}}}
}void Reset() {for (int i = 0; i < num; i++)visit[i] = 0;cout << endl;
}int main() {cin >> num;//判断是否走过visit = new int[num];for (int i = 0; i < num; i++)visit[i] = 0;//邻接矩阵edge = new int* [num];for (int i = 0; i < num; i++)edge[i] = new int[num];for (int i = 0; i < num; i++)for (int j = 0; j < num; j++)cin >> edge[i][j];cout << "DFS" << endl;;for (int i = 0; i < num; ++i) {DFS(i);Reset();}cout << "WFS" << endl;;for (int i = 0; i < num; ++i) {BFS(i);Reset();}}

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

相关文章:

  • 计算机毕业设计JAVA+SSM+springboot养老院管理系统
  • Flutter路由的几种用法
  • 力扣119双周赛
  • Redux,react-redux,dva,RTK
  • 基于Java SSM框架实现高校信息资源共享平台系统【项目源码+论文说明】计算机毕业设计
  • SpringMvc入坑系列(一)----maven插件启动tomcat
  • Leetcode—337.打家劫舍III【中等】
  • 列表标签的介绍与使用
  • 浅谈什么是语音芯片的白噪音支持功能:打造舒适家居与优质音频体验
  • 【QED】高昂的猫 Ⅰ
  • Redis如何做内存优化?
  • 倪海厦:教你正确煮中药,发挥最大药效
  • C++学习笔记:继承
  • 音频/视频、信息和通信技术设备安全标准UL62368-1
  • macos下安装科研绘图软件Origin
  • 安全快速地删除 MySQL 大表数据并释放空间
  • 未使用 “严格模式“(js的问题)
  • Verilog基础:$random系统函数的使用
  • 数据库Delete的多种用法
  • 鸿蒙前端开发-构建第一个ArkTS应用(Stage模型)
  • 从零开始搭建链上dex自动化价差套利程序(12)
  • MySQL 数据库如何实现 XA 规范?
  • SVN修改已提交版本的日志方法
  • ArkUI组件--Text组件
  • mysql的组合查询
  • 短视频购物系统源码:构建创新购物体验的技术深度解析
  • 暴力破解漏洞
  • 前端成神之路-CSS基础选择器
  • Endnote在word中加入参考文献及自定义参考文献格式方式
  • LeetCode力扣每日一题(Java):28、找出字符串中第一个匹配项的下标