问答题 按图的广度优先搜索法写一算法判别以邻接矩阵存储的有向图中是否存在由顶点V i 到顶点V j 的路径(i≠j)。【中山大学1997五(10分)】
【正确答案】正确答案:用广度优先遍历法判别以邻接矩阵存储的有向图中是否存在由顶点V i 到顶点V j 的路径,应该使用队列。从顶点V i 开始遍历,若遇到顶点V j ,说明有路径。 int visited[n]; //设有向图有n个顶点 int PathiToj(Adj Matrix g,vertype V i ,vertype V j ) {//判断以邻接矩阵方式存储的有向图中是否存在由顶点v i 到顶点v j 的路径 for(i=0;i i); //顶点定位 j=GraphLocateVertex(g,Vj); QueueInit(Q); //Q是队列,容量足够大,队列元素是顶点编号(0..n一1) visited[i]=1;QueueIn(Q,i); //Vi入队 while(!QueueEmpty(Q)) {v=QueueOut(Q); for(w=0 ; 1i到顶点Vj存在路径”; return(1);) if(g[v][w]==1&& !visited[w]) {visited[w]=1;QueueIn(Q,w);} }//for } coutj不存在路径”); return(0);
【答案解析】