dfs算法

#include
#include
//#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct graph{
    int vex[100];
    int edge[100][100];
    int vnum,ednum;
};
void dfs(graph g,int v,int visit[]){//当前顶点下标和访问数组
    visit[v]=1;
    cout<     for(int j=0;j         if(g.edge[v][j]==1&&visit[j]==0){
            dfs(g,j,visit);
        }
    }
}

int main(){
    int i,j;//指针
    graph g;
    int n,m;//分别是顶点数和边数
    cin>>n>>m;
    g.vnum=n;
    //对顶点进行初始化
    for(i=0;i         cin>>g.vex[i];
    }
    g.ednum=m;
    for(i=0;i         int a,b,c;//a是起点,b是终点,c是权重
        cin>>a>>b>>c;
        g.edge[a][b]=c;//如果是无向图要加两次边
        g.edge[b][a]=c;
    }
    int visit[n]={0};
    dfs(g,0,visit);
    


}


 

你可能感兴趣的:(图论,深度优先,算法,图论)