并使用深度优先搜索算法进行遍历
#include<iostream>
#include<string>
using namespace std;
struct graph
{
char vexs[10];
int mat[10][10];
int vexnum, arcnum;
};
int located(graph g, char c)
{
for (int i = 0; i < g.vexnum; i++)
{
if (g.vexs[i] == c)
{
return i;
}
}
}
void creat(graph &g)
{
cout << "请输入顶点个数和边数" << endl;
cin >> g.vexnum >> g.arcnum;
for (int i = 0; i < g.vexnum; i++)
{
cout << "请输入顶点字符串" << endl;
char c;
cin >> c;
g.vexs[i]=c;
}
for (int i = 0; i < g.vexnum; i++)
{
for (int j = 0; j < g.vexnum; j++)
{
g.mat[i][j] = 0;
}
}
for (int i = 0; i < g.arcnum; i++)
{
cout << "请输入字符v1和v2的值" << endl;
char v1, v2;
cin >> v1 >> v2;
int m = located(g, v1);
int n = located(g, v2);
g.mat[m][n] = 1;
g.mat[n][m] = 1;
}
}
int visited[6];
void DFS(graph g, int v)
{
cout << v;
visited[v] = 1;
for (int w = 0; w < g.vexnum; w++)
{
if (g.mat[v][w] != 0 && (!visited[w]))
{
DFS(g, w);
}
}
}
int main()
{
graph g;
creat(g);
DFS(g, 2);
system("pause");
return 0;
}