请给予指正。。判别邻接表存储的无向图是否为连通图的算法
写一个判别邻接表存储的无向图是否为连通图的算法
[size=5][size=6]#define MAX_VERTEX_NUM 20
typedef struct ArcNode{
int adjvex;
struct ArcNode *nextarc;
}ArcNode;
typedef struct Vnode{
VertexType data;
ArcNode *firstarc;
}Vnode, AdjList[MAX_VERTEX_NUM];
typedef struct{
AdjList vertices;
int vexnum, arcnum;
int kind;
}ALGraph;
算法中使用的全局变量:
Boolean visited[MAX_VERTEX_NUM ];
int VertNum;
以下为我自己试写的算法,请高手指点下。。。。为谢!!!
main( )
{int count=1;
DFScount(G,vernum);
if(count==vexnum)
printf("该无向图为连通图\n");
else
printf("该无向图为非连通图\n");
}
void DFScount(Grath G,int vernum)
{
visited[vernum]=TRUE;
VisitFunc(vernum);
for(w=FirstAdjvex(G,vernum);w>=0;w=NextAdjvex(G,vernum,w))
if(!visited[w])
{DFScount(G,w);count++;}
}
[[it] 本帖最后由 wang0477 于 2008-10-21 23:58 编辑 [/it]]