思路:
无向图是树的条件是有n-1条边的连通图
int visit[MAXV];
void DFS2(AdjGraph *G, int v, int &vn, int &en){
visit[v] = 1;
vn++;
ArcNode *p = G->adjlist[v].firstarc;
while(p != NULL){
en++;//注意此句写在if外面
if(visit[p->no] == 0){
DFS2(G, p->no, vn, en);
}
p = p->nextarc;
}
}
int GisTree(AdjGraph *G){
int vn = 0, en = 0;
for(int i = 0; i < G->n; ++i) visit[i] = 0;
DFS2(G, 1, vn, en);
cout << vn << " " << en << endl;
if(vn == G->n && en/2 == G->n-1) return 1;
else return 0;
}