1 邻接表存储的图,判别 i-j 之间是否有路径。
int DFSTrave(AGraph *G,int i,int j)
{
int k;
for(k=0;k<G->n;k++)
visit[k]=0;
DFS(G,i); //深度遍历
if(visit[j]==1) //visite[j]等于 1 证明访问过程中遇到了j
return 1;
else
return 0;
}
int visit[maxsize];
void DFS(AGraph *G, int v)
{
ArcNode *p;
visit[v]=1; //已访问标记
p=G->adjlist[v].firstarc;//p指向v的第一条边
while(p)
{
if(visit[p]==0)
DFS(G,p->adjvex);
p=p->nextarc; //p指向v的下一条边的终点
}
}