- 邻接矩阵
const int MAX_VERTEX_NUM = 20; //最大顶点数
const int MAX_EDGE_NUM = 95; //最大边数:(20-19)/2
typedef int VertexType; //顶点类型
typedef int EdgeType; //边权值类型
struct MGraph{
VertexType vex[MAX_VERTEX_NUM]; //顶点表
EdgeType edge[MAX_EDGE_NUM][MAX_EDGE_NUM]; //边的权值表
int vexNum, edgeNum; //顶点数,边数
};
2.邻接表
const int MaxVertexNum = 100;
typedef int VertexType;
typedef int EdgeType;
//边表结点
typedef struct ArcNode
{
int adjvex; //邻接点域,存储该顶点对应的下标
struct ArcNode *next; //邻域,指向下一个邻接点
}ArcNode;
//顶点表
typedef struct VNode
{
VertexType data;
ArcNode *first; //边表头结点
}VNode, AdjList[MaxVertexNum];
//邻接表定义
typedef struct
{
AdjList vertices; //邻接表
int vexnum, arcnum; //图的顶点数和弧数
}ALGraph;