voidDFS(ALGraph G,int i,int j,int k, Status on[], Status &found){
Static int n =0;//记录当前路径上的顶点个数
ArcNode *p;
on[i]= TRUE;
n++;if(i == j && n == k+1)
found = TRUE;else{
p = G.vertices[i].firstarc;while(!found && p !=NULL){if(!on[p->adjvex])DFS(G, p->adjvex, j, k, on ,found);
p = p->nextarc;}}
on[i]= FALSE;//回退操作
n--;}
Status SimplePath(ALGraph G,int i,int j,int k){int m;
Status on[MAX_VERTEX_NUM];
Status found;for(m =1; m <= G.vexnum; m++)
on[m]= FALSE;
found = FALSE;DFS(G, i, j, k, on, found);return found;}
题目7.27 采用邻接表存储结构,编写一个判别无向图中任意给定的两个顶点之间是否存在一条长度为k的简单路径的算法(一条路径为简单路径指的是其顶点序列中不含有重现的顶点)。void DFS(ALGraph G, int i, int j,int k, Status on[], Status &amp;found){ Static int n = 0;//记录当前路径上的顶点个数 ArcNod...