其他代码实现如(locate函数)请看同专栏图的建立文章。
int visit[10];//访问前置为false,访问后置为true,
void dfs(graph g,char v)// v是DFS起始点
{
cout<<v<<" ";//访问
visit[locate(g,v)]=true;
for(int i=0;i<g.vexnum;i++)
{
if(g.arcs[locate(g,v)][i]!=maxint&& visit[i]!=true&&g.arcs[locate(g,v)][i]!=0)
{
dfs(g,g.vexs[i]);//递归栈后进先出.
}
}
}
//通过递归的方法深度优先遍历图,并且输出
g.arcs[locate(g,v)][i]!=maxint 代表两点之间有边
visit[i]!=true代表下一点未被访问
g.arcs[locate(g,v)][i]!=0代表下一点不是自己本身