#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define MaxSize 50
typedef struct ArcNode{
int adjvex;
ArcNode *next;
int weight;
};
struct VNode{
char value;
ArcNode *first;
};
struct AdGraph{
VNode vertices[MaxSize];
int vexnum,arcnum;
};
void BFSMinPath(AdGraph G,int v,int *dis,int *path,int *visited){
for(int i = 0;i < G.vexnum;i++){
dis[i] = INF;
path[i] = -1;
visited[i] = 0;
}
dis[v] = 0;
visited[v] = 1;
int queue[MaxSize],front = -1,rear = -1;
queue[++rear] = v;
while(front != rear){
v = queue[++front];
ArcNode *p = G.vertices[v].first;
while(p){
if(visited[p->adjvex]==0){
dis[p->adjvex] = dis[v] + 1;
path[p->adjvex] = v;
visited[p->adjvex] = 1;
queue[++rear] = p->adjvex;
}
p = p->next;
}
}
}