bool isTree(Graph &G){
for(int i=1;i<=G.vexnum;i++){
visited[i]=FALSE;
}
int Vnum=0,Enum=0;
DFS(G,1,Vnum,Enum,visited);
if(Vnum==G.vexnum&&Enum==2*(G.vexnum-1)){ //无向图,边数应为结点数-1的2倍
return true;
}
else return false;
}
void DFS(Graph &G,int v,int& Vnum,int& Enum,int visted[]){
visited[v]=TRUE;
Vnum++;
int w=FirstNeighbor(G,v);
while(w!=1){
Enum++;
if(!visited[w]){
DFS(G,w,Vnum,Enum,visited);
}
w=NextNeighbor(G,v,w);
}
}