话不多说,直接上代码:
#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
typedef char VertexType;
typedef int EdgeType;
const int MAXVEX = 110;
typedef struct EdgeNode{
//存储边表节点
int adjvex; //邻接点域,存储该顶点对应的下标。
EdgeType weight; //存储权值
struct EdgeNode *next; //指向下一个邻接点
}EdgeNode;
typedef struct VertexNode{
//存储表顶点,实现方法位将表顶点存放在数组中
VertexType data; //存储顶点信息(权值)
EdgeNode *firstedge; //边表头指针
}VertexNode,AdjList[MAXVEX];//实现方法为数组
typedef struct{
//存储图的结构体
AdjList adjList; /*adjList存储一个图的邻接表数组,相当于一个GraphAdjList
变量存储一张图*/
int numVertexe,numEdges;//图中顶点的总个数与边的总个数
}GraphAdjList;
void