2010-d-二-3

//void BFS(AGraph *G,int v,int visit[maxSize])
void DS(AGraph *G,int v,int visit[maxSize])
{
    //visit数组被初始化为全0
    ArcNode *p;
    //int que[maxSize],front=0,rear=0;
    int stack[maxSize],top=-1;
    int j;
    visit[v]=1;
    //rear=(rear+1)%maxSize;
    //que[rear]=v;
    stack[++top]=v;
    while(front!=rear)
    {
        //front =(front+1)%maxSize;
        //j=que[front];
        j=stack[top--];
        p=G->adjlist[j].firstarc;
        while(p!=NULL)
        {
            if(visit[p->adjvex]==0)
            {
                visit[p->adjvex]=1;
                //rear=rear+1;
                //que[rear]=p->adjvex;
                stack[++top]=p->adjvex;
            }
            p=p->nextarc;
        }
    }
}