这有向图的广度优先搜索算法错在那了?求正确代码(c语言)(采用递归)

下面是邻接表的数据结构

求大佬看看为什么输不出正确答案

int visited2[MAXV]={0};

 

typedef struct ANode

{ int adivex;

 struct ANode *nextarc;

 int weight;

}ArcNode;

 

typedef struct Vnode

{

 int info;

 ArcNode *firstarc;

}VNode;

 

typedef struct

{

 VNode adjlist[MAXV];

 int n,e;

}AdjGraph;

 

void BFS(AdjGraph *G,int v)//广度搜索函数

{  

   int i;

   ArcNode *p;

   visited2[v]=1;

   printf("%d ",v);

   p=G->adjlist[v].firstarc;

   while(p!=NULL)

   {

    if(visited2[p->adivex]==0) 

    {

visited2[p->adivex]=1;

printf("%d ",p->adivex);

    p=p->nextarc;

    }

   }

   BFS(G,p->adivex);

}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^