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

三种方式存图分别输出“无向无权图”的“DFS序列”

【DFS序列】
DFS序列(深度优先搜索序列),是树或图结构在深度优先遍历过程中生成的节点访问顺序记录。
下面三段代码,分别采用
链式前向星邻接表邻接矩阵存图,输出图的“DFS序列”。

【DFS:链式前向星

#include <bits/stdc++.h>
using namespace std;const int N=1e5+5;
int h[N],e[N<<1],ne[N<<1],idx;
bool st[N];
int n,m,x;void add(int a,int b) {e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}void dfs(int u) {cout<<u<<" ";st[u]=true;for(int i=h[u]; i!=-1; i=ne[i]) {int j=e[i];if(!st[j]) dfs(j);}
}int main() {cin>>n>>m;memset(h,-1,sizeof(h));while(m--) {int a,b;cin>>a>>b;add(a,b),add(b,a);}cin>>x;dfs(x);return 0;
}/*
in:
6 5
2 1
3 2
4 3
5 2
6 1
2out:
2 5 3 4 1 6
*/


【DFS:邻接表

#include <bits/stdc++.h>
using namespace std;const int N=1e5+5;
vector<int> g[N];
bool st[N];
int n,m,x;void dfs(int u) {cout<<u<<" ";st[u]=true;for(int i=0; i<g[u].size(); i++) {int j=g[u][i];if(!st[j]) dfs(j);}
}int main() {cin>>n>>m;while(m--) {int a,b;cin>>a>>b;g[a].push_back(b);g[b].push_back(a);}cin>>x;dfs(x);return 0;
}/*
in:
6 5
2 1
3 2
4 3
5 2
6 1
2out:
2 1 6 3 4 5
*/


【DFS:邻接矩阵

#include <bits/stdc++.h>
using namespace std;const int N=100;
int g[N][N];
bool st[N];
int n,m,x;void dfs(int u) {cout<<u<<" ";st[u]=true;for(int i=1; i<=n; i++) {if(!st[i] && g[u][i]!=0) dfs(i);}
}int main() {cin>>n>>m;while(m--) {int a,b;cin>>a>>b;g[a][b]=g[b][a]=1;}cin>>x;dfs(x);return 0;
}/*
in:
6 5
2 1
3 2
4 3
5 2
6 1
2out:
2 1 6 3 4 5
*/






【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/139369904
https://blog.csdn.net/hnjzsyjyj/article/details/147622977
https://blog.csdn.net/hnjzsyjyj/article/details/140361781





 

http://www.xdnf.cn/news/273457.html

相关文章:

  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】3.2 缺失值检测与处理(NULL值填充/删除策略)
  • Spring MVC设计与实现
  • Win10下安装Linux-Ubuntu24.04双系统
  • 通讯协议开发实战:从零到一打造企业级通信解决方案
  • 第三方组件库:element-uiiviewVant
  • 《MATLAB实战训练营:从入门到工业级应用》工程实用篇-自动驾驶初体验:车道线检测算法实战(MATLAB2016b版)
  • LeetCode 热题 100 54. 螺旋矩阵
  • MVC 安全
  • 表驱动 FSM 在 STM32 上的高效实现与内存压缩优化——源码、性能与实践
  • 4个纯CSS自定义的简单而优雅的滚动条样式
  • 使用 IDEA + Maven 搭建传统 Spring MVC 项目的详细步骤(非Spring Boot)
  • 深入解析Linux进程间通信(IPC):机制、应用与最佳实践
  • 新一代智能座舱娱乐系统软件架构设计文档
  • 理解MAC-IP映射、ARP协议与ARP欺骗及防护
  • 个人健康中枢的多元化AI网络革新与精准健康路径探析
  • Spring Cloud Gateway MVC 基于 Spring Boot 3.4 以 WAR 包形式部署于外部 Tomcat 实战
  • 软考-软件设计师中级备考 11、计算机网络
  • ASP.NET MVC​ 入门与提高指南九
  • 分布式系统中的 ActiveMQ:异步解耦与流量削峰(二)
  • EasyExcel使用总结
  • Tire 树(字典树/前缀树)
  • 数据同步实战篇
  • 面向对象编程(Object-Oriented Programming, OOP)是什么?
  • Kubernetes(k8s)学习笔记(六)--KubeSphere前置环境安装
  • Git 命令
  • go实现循环链表
  • 【数据结构】线性表--链表
  • 【图书管理系统】环境介绍、设计数据库和表、配置文件、引入依赖
  • OpenCv实战笔记(1)在win11搭建opencv4.11.1 + qt5.15.2 + vs2019_x64开发环境
  • Java捕获InterruptedException异常后,会自动清空中断状态