深度优先搜索算法(DFS)源代码,C++的,
/*深度搜索,用邻接矩阵存储*/
void DFSTraverse(Graph *G)
{
int v;
for(v=1;v<=G->vexnum;v++)
visited[v]=false;
for(v=1;v<=G->vexnum;v++)
if(visited[v]==false)
DFS(G,v);
}
void DFS(Graph *G,int v)
{
int w;
visited[v]=true;
visitfunc(G,v);
for(w=FirstAdjex(G,v);w>=0;w=NextAdjex(G,v,w))
if(visited[w]==false)
DFS(G,w);
}
int FirstAdjex(Graph *G,int v)
{
int i;
for(i=1;i<=G->vexnum;i++)
if(G->Garr[v][i])
return i;
return -1;
}
int NextAdjex(Graph *G,int v,int w)
{
int i;
for(i=w+1;i<=G->vexnum;i++)
if(G->Garr[v][i])
return i;
return -1;
}
评论