递归算法

结合上篇邻接表存储图

int visited[20] = {0};
void DFS(AdjList *g,int vi){
EdgeNode *p;
printf("(%d,",vi);
printf("%c) ",g->adjlist[vi].data);
p = g->adjlist[vi].firstedge;
visited[vi] = 1; // 全局数组标记被访问过
while(p!= NULL){
if(visited[p->adjvex] == 0){
DFS(g,p->adjvex);
}
p = p->next;
}
}