//无向图的邻接表的广度优先搜索——BFS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define VERTEXNUM 100//最大顶点数
#define ERROR 0
#define OK 1
typedef char *VertexType;//顶点数据的结构体
int visited[VERTEXNUM];//创建状态数组
typedef struct edgenode
{
int adjlist;//下标
struct edgenode *next;//指向下一个邻接点的指针
}EdgeNode;//邻接边的结构体
typedef struct vnode
{
VertexType vertex;//顶点的数据
EdgeNode *firstedge;//指向其顶点的第一个邻接点的指针
}VNode;//顶点的结构体
typedef struct algraph
{
VNode adjlist[VERTEXNUM];//顶点数组
int n,e;//图的边数和顶点数
}ALGraph;//邻接表的结构体
int create_algraph(ALGraph*G);
int locate_vex(ALGraph*G,VertexType vex);//定位函数
void test();//测试函数
void BFS_traversealgraph(ALGraph*G);//邻接表的广度优先搜索
void BFSAL(ALGraph*G,int i);//广度优先搜索的第二个函数
void main()
{
test();//测试函数
}
int create_algraph(ALGraph*G)
{
int i;
VertexType vex1;
VertexType vex2;
int x,y;//临时数组下标变量
int create_algraph(ALGraph*G);
printf("请输入图的边数:");
scanf("%d"