DFS邻接矩阵版
int n,G[MAXV][MAXV];
bool visit[MAXV]={false};
void DFS(int u,int depth){
visit[u]=true;
for(int v=0;v<n;v++){
if(visit[v]==false&&G[u][v]!=INF){
DFS(v,depth+1);
}
}
}
void DFSTrave(){
for(int u=0;u<n;u++){
if(vis[u]==false){
DFS(u,1)
}
}
}
DFS邻接表版
#include<vector>
using namespace std;
int MAXV;
vector<int>Adj[MAXV];
int n;
bool visit[MAXV]={false};
void DFS(int u,int depth){
visit[u]=true;
for(int i=0;i<Adj[u].size();i++){
int v=Adj[u][i];
if(visit==false){
DFS(v,depth+1);
}
}
}
void DFSTrave(){
for(int u=0;u<n;u++){
if(vis[u]==false){
DFS(u,1);
}
}
}
DFS算法
最新推荐文章于 2024-01-17 11:43:48 发布
本文探讨了两种DFS(深度优先搜索)实现方式,分别是邻接矩阵版和邻接表版,详细介绍了它们的代码示例,并强调了在不同场景下选择哪种数据结构更高效。通过对比,帮助读者理解邻接矩阵和邻接表在图遍历中的适用性。
7704

被折叠的 条评论
为什么被折叠?



