【正确答案】
【答案解析】void D_Traverse(Graph G)
{
int i,v;
ArcNode*arc;
Stack S:
int visited[vexnum];
for(i=0;i<vexnum;i++)
visited[i]=0:
InitStack(S):
for(i=0;i<vexnum;i++)
{
if(!visited[i])//)如果结点i未访问
{
push(S,i);//结点i入栈
while(!StackEmpty(S))//
{
pop(S,v);
visited[v]=1:
Visit(v);//出栈,将栈顶元素赋值给v
for(arc=G[i].firstarc;arc!=NULL;arc=arc->nextarc)
{
if(!visited[arc->adjvex])//对于结点v的所有邻接结点,若未访问,就入栈
{
push(S,arc->adjvex);
visited[v]=1:
}
}
}
}
}