这是通过邻接矩阵进行DFS
#include<iostream>
#include<string>
#include<windows.h>
#define Max_ver_num 20
using namespace std ;
bool visit[Max_ver_num] ;//这个数组的用途是标记
struct HGraph{
string vexs [ Max_ver_num ] ; //放每个顶点的数组的名字
int arcs [Max_ver_num][Max_ver_num] ; // ;邻接矩阵
int vexnum ; //顶点的数目
int arcnum ; //边的数目,这边的边是没有权值的
};
int Locate ( HGraph G , string x ) { //确定顶点的位置
int k = 0;
while(G.vexs[k] != x) {
k++ ;
}
return k ;
}
void Create (HGraph &G){ //创建一个图,这里的图是指构造无向图,通过邻接矩阵构建
int i = 0 , j , k;
cout <<"输入图的顶点和边的数目: ";
cin >>G.vexnum >>G.arcnum ;
cout <<"依次输入各个顶点的名称 :";
while (i<G.vexnum) {
cin >>G.vexs[i++] ;
}
for(i = 0 ; i < G.vexnum;i++){
for(j = 0 ; j < G.vexnum; j ++) {
G.arcs[i][j] = 0 ;
}
}
for( k=0 ;k