//一个联通图,采用邻接表作为存储结构,设计一个算法从顶点v出发的深度优化遍历的非递归过程 void DFS1(AGraph *G,int v) { ArcNode *p; ArcNode *St[40]; int top=-1,i; for (i=0;i<G->n;i++) visited[i]=0; printf("%d",v); top++; St[top]=G->adjlist[v].firstarc; while(top>-1) { p=St[top]; top--; while(p!=NULL) { i=p->adjvex; if (visited[i]==0) { printf("**%d ",i); visited[i]=1; top++; St[top]=G->adjlist[i].firstarc; break; } p=p->nextarc; } } }