问答题 设计一个算法,判断无向图G是否连通。若连通,则返回1;否则返回0,假设图中顶点标号从0到g.vexnum-1。
【正确答案】采用遍历方式判断无向图G是否连通。这里用dfs,先给visited[]数组置初值0,然后从0顶点开始遍历该图。之后,若所有顶点i的visited[i]均为1,则该图是连通的;否则不连通。 由此可以写出如下程序代码: int connect(graph g) //判断无向图G的连通性 { int i,flag=1; int visited[Vnum]; for(i=0;i<g.vexnum;i++) visited[i]=0; dfs(g,0,vislied); for(i=0;i<g.vexnum;i++) if(visited[i]==0) { flag=0; break; } return flag; }
【答案解析】