#include<stdio.h>
#include<malloc.h>
#define MAX_VERTEX_NUM 5
typedef int VertexType;
typedef struct MGraph{
VertexType vexList[MAX_VERTEX_NUM];
VertexType arcMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
int vexNum,arcNum;
}MGraph;
int visited[MAX_VERTEX_NUM]={0};
void DFS(MGraph G,VertexType v){
printf("%d ",v);
visited[v]=1;
for(int i=0;i<G.vexNum;i++){
if(G.arcMatrix[v][i]!=0 && visited[i]==0){
DFS(G,i);
}
}
}
void DFSTraverse(MGraph G){
for(int i=0;i<G.vexNum;i++){
if(visited[i]==0){
DFS(G,i);
}
}
}
int main(){
VertexType vexList[MAX_VERTEX_NUM]={0,1,2,3,4};
VertexType arcList[MAX_VERTEX_NUM][MAX_VERTEX_NUM]={
{0,1,1,0,0},
{0,0,0,1,0},
{0,0,0,1,0},
{0,0,0,0,0},
{0,0,0,0,0},
};
MGraph G;
G.vexNum=5;
for(int i=0;i<G.vexNum;i++){
G.vexList[i]=vexList[i];
}
for(int i=0;i<G.vexNum;i++){
for(int j=0;j<G.vexNum;j++){
G.arcMatrix[i][j]=arcList[i][j];
}
}
DFSTraverse(G);
return 0;
}
DFS 邻接矩阵
最新推荐文章于 2021-10-19 17:28:30 发布