2013香港特别行政区小学综合习题.pdfVIP

  • 5
  • 0
  • 约2.8千字
  • 约 3页
  • 2020-03-18 发布于河北
  • 举报
1、假设以邻接矩阵作为图的存储结构,编写算法判别在给定的有向图中是否存在一个简单有 向回路,若存在,则以顶点序列的方式输出该回路(找到一条即可)。(注:图中不存在顶点 到自己的弧) 有向图判断回路要比无向图复杂。利用深度优先遍历,将顶点分成三类:未访问;已访问但 其邻接点未访问完;已访问且其邻接点已访问完。下面用0,1,2 表示这三种状态。前面已提 到,若dfs (v)结束前出现顶点u 到v 的回边,则图中必有包含顶点v 和u 的回路。对应程 序中v 的状态为1,而u 是正访问的顶点,若我们找出u 的下一邻接点的状态为1,就可以输 出回路了。 void Print(int v,int start ) //输出从顶点start 开始的回路。 {for(i=1;i=n;i++) if(g[v][i]!=0 visited[i]==1 ) //若存在边(v,i),且顶点i 的状态为1。 {printf( “%d”,v); if(i==start) printf( “\n”); else Print(i,start);break;}//if }//Print void dfs(int v) {visited[v]=1; for(j=1;j=n;j++ ) if (g[v][j]!=0) //存在边(v,j)

文档评论(0)

1亿VIP精品文档

相关文档