for(p=G.vertices[v].firstarc;p;p=p->nextarc) {
if(w!=p->adjvex) i=0; else i=1; if(i&&p)
return p->nextarc->adjvex; else return -1; } }
void DFS(ALGraph G,int v) { int w;
visited[v]=TRUE;
printf(\
for(w=FirstAdjVex(G,v);w>=0;w=NextAdjVex(G,v,w)) if(!visited[w]) DFS(G,w); }
void DFSTraverse(ALGraph G) { int v;
for(v=0;v ALGraph G; G=Create(G); printf(\邻接表为:\\n\ print(G); printf(\深度遍历的结果为: DFSTraverse(G); } 构造一个无向图G,如图所示。\\n\ V2 V4 V5 V8 运行结果截图: V1 V3 V6 V7 图G 实验结果显示:遍历的结果为:v1-v3-v7-v6-v2-v5-v8-v4。运行成功。 六. 实验结论 可以运用深度优先搜索的方法遍历一个用邻接表构建的图。