可根据具体情况和存储结构修改为一个函数,这个算法里dfs是走到底的,合并为一个函数的时候可以加上判断语句
bool visited[Maxsize];
SqStack S;
bool Pathij(Graph G,int i,int j)
{
int v;
for(v=0;v<G.vexnum;v++)
visited[v]=false;
InitStack(S);
DFS(G,i);
if(visited[j])
return true;
return false;
}
void DFS(Graph G,int v)
{
visited[v]=true;
EnQueue(Q,v);
while(!IsEmpty(Q))
{
DeQueue(Q,v);
for(w=Firstneighbor(G,v);w>=0;w=Nextneighbor(G,v,w))
if(!visited[w])
DFS(G,w);
}
}