//设计算法判断一个无向图是否连通
//不连通给出分量个数
//ADT语句
//Auther:
//Data:2019/11/26
int visited[MAX-VERTEX-NUM];
//访问标志数组
int count=0;
//连通分量个数
int TraverseGraph(Grap g)
{
int count=0;
for(vi=0;vi<g.vexnum;vi++;
visited[vi]=0;
//初始访问数组,0未访问,1已访问
for(vi=0;vi<g.vexnum;vi++)
if(!visited[vi])
{
DepthFirstSearch(g,vi);
//调用深度遍历连通子图
count++;
}
return count;
}
void DepthFirstSearch(Grap g,int v0)
{
visit(v0);
//访问v0顶点所在连通子图
visited[v0]=1;
//顶点已访问,置为1
w=FirstAdjVertex(g,v0);
while(w!=-1)//邻接点存在
{
if(!visited[w])
DepthFirstSearch(g,w);
//递归调用
w=NextAdjVertex(g,v0,w);
/*寻找下一个邻接点
*/
}
}
设计算法判断一个无向图是否连通 ,不连通给出分量个数
猜你喜欢
转载自blog.csdn.net/weixin_41865104/article/details/103261350
今日推荐
周排行