- #define MAX_VERTEX_NUM 20
- typedef struct ArcNode
- {
- int adjvex; // 该弧所指向的顶点的位置
- struct ArcNode *nextarc; //指向下一条弧的指针
- } ArcNode;
- typedef struct VNode
- {
- int data; // 顶点信息 假设为int型
- ArcNode *firstarc; // 指向第一条依附该顶点的弧
- } VNode, AdjList[MAX_VERTEX_NUM];
- typedef struct
- {
- AdjList vertices;
- int vexnum, arcnum; // 图的当前顶点数和弧数
- int kind; // 图的种类标志
- } ALGraph;
- int visit[MAX_VERTEX_NUM]; //全局变量数组
- bool DFSTrave(ALGraph *G)
- {
- int k,num=0; //num为连通分量的个数
- for(k=0;k<G->vexnum;k++) //初始化
- {
- visit[k]=0;
- }
- for (k=0;k<G->vexnum;k++)
- {
- if(visit[k]==0)
- {
- num++;
- DFS(G,k); //深度优先遍历算法
- }
- }
- if(num==1) //连通图的连通分量为1;
- return true;
- else
- return false;
- }
- //该片段来自于http://www.codesnippet.cn/detail/2601201614490.html
来源: http://www.codesnippet.cn/detail/2601201614490.html