在以邻接矩阵方式存储的有向图G中求顶点i到顶点j的不含回路的,长度为k的路径数
int way_num = 0;//路径数
int i,j;//i为出发顶点,j为目标顶点
int Way[k+1];//路径顶点向量
Way[0] = i;
Status Count_Way(MGraph G,int n, int start){
//寻找从start到j的路径数,n为已确定顶点数,初始调用Count_Way(G,1,i)
if(n == k+1 && start == j){ way_num++; return OK;}
for(int a = 0;a < G.vexnum;a++){
if(G.arcs[start][a] && !In_the_Way(n,a)){//start与a相邻且a不在已有路径上
Way[n] = a;
Count_Way(G,n+1,a);
}//if
}//for
return OK;
}//Count_Way
|