#include #include //引入队列头文件 using namespace std; #define MaxVnum 100 //顶点数最大值 bool visited[MaxVnum]; //访问标志数组,其初值为"false" typedef char VexType; //顶点的数据类型,根据需要定义 typedef int EdgeType; //边上权值的数据类型,若不带权值的图,则为0或1 typedef struct{ VexType Vex[MaxVnum]; EdgeType Edge[MaxVnum][MaxVnum]; int vexnum,edgenum; //顶点数,边数 }AMGragh; int locatevex(AMGragh G,VexType x) { for(int i=0;i>G.vexnum; cout << "请输入边数:"<>G.edgenum; cout << "请输入顶点信息:"<>G.Vex[i]; for(int i=0;i>u>>v; i=locatevex(G,u);//查找顶点u的存储下标 j=locatevex(G,v);//查找顶点v的存储下标 if(i!=-1&&j!=-1) G.Edge[i][j]=1; //邻接矩阵储置1,若无向图G.Edge[i][j]=G.Edge[j][i]=1 else { cout << "输入顶点信息错!请重新输入!"<Q; //创建一个普通队列(先进先出),里面存放int类型 cout<>c; v=locatevex(G,c);//查找顶点u的存储下标 if(v!=-1) { cout << "广度优先搜索遍历连通图结果:" <