标签:常用 size i++ lse int fst nbsp 顶点 模板
总结下图里面的常用模板:
1 DFS(u){ 2 vis[u]=true; 3 for(从u出发能到达的所有顶点v){ 4 if(vis[v]==false){ 5 DFS(v); 6 } 7 } 8 } 9 10 DFSTrave(G){ 11 for(G的所有顶点u){ 12 if(vis[u]==false){ 13 DFS(u); 14 } 15 } 16 }
1、邻接矩阵版
1 int n,G[maxv][maxv]; //n为顶点数 2 bool vis[maxv]={false}; 3 4 void DFS(int u,int depth){ 5 vis[u]=true; 6 for(int v=0;v<n;v++){ 7 if(vis[v]==false){ 8 DFS(v,depth+1); 9 } 10 } 11 } 12 13 void DFSTravel(){ 14 for(int u=0;u<n;u++){ 15 if(vis[u]==false){ 16 DFS(u,1); 17 } 18 } 19 }
2、邻接表版
1 vector<int> Adj[maxv]; 2 int n; 3 bool vis[maxv]={false}; 4 5 void DFS(int u,int depth){ 6 vis[u]=true; 7 for(int i=0;i<Adj[u].size();i++){ 8 int v=Adj[u][i]; 9 if(vis[v]==false){ 10 DFS(v,depth+1); 11 } 12 } 13 } 14 15 void DFSTravel(){ 16 for(int u=0;u<n;u++){ 17 if(vis[u]==false){ 18 DFS(u,1); 19 } 20 } 21 }
标签:常用 size i++ lse int fst nbsp 顶点 模板
原文地址:https://www.cnblogs.com/Mered1th/p/10415875.html