采用邻接表存储结构,编写一个算法,判别无向图中任意给定的两个顶点之间是否存在一条长度为为k的简单路径。


采用邻接表存储结构,编写一个算法,判别无向图中任意给定的两个顶点之间是否存在一条长度为为k的简单路径。

正确答案:int visited[MAXSIZE]; int exist()path()len(ALGraph G,int i,int j,int k) //判断邻接表方式存储的有向图G的顶点i到j是否存在长度为k的简单路径 {if(i==j&;&;k==0) return 1; //找到了一条路径,且长度符合要求 else if(k>0) {visited[i]=1; for(p=G.vertices[i].firstarc;p;p=p->nextarc) {l=p->adjvex; if(!visited[l]) if(exist()path()len(G,l,j,k-1)) return 1; //剩余路径长度减一 }//for visited[i]=0; //本题允许曾经被访问过的结点出现在另一条路径中 }//else return 0; //没找到 }//exist()path()len


Tag:数据结构 路径 顶点 时间:2024-01-19 16:04:34

热门答案