摘抄一篇:图的存储结构
. 图的邻接矩阵(Adjacency Matrix)存储表示法 设图 A = (V, E)是一个有 n 个顶点的图, 图的邻接矩阵是一个二维数组 A.edge[n][n], 用来存放顶点的信息和边或弧的信息。定义为: (1) 无向图的邻接矩阵是对称的;有向图的邻接矩阵可能是不对称的。 (2) 在有向图中, 统计第 i 行 1 的个数可得顶点 i 的出度,统计第 j 行 1 的个 数可得顶点j 的入度。在无向图中, 统计第 i 行 (列) 1 的个数可得顶点i的 度。 图的邻接矩阵存储表示: #define INFINITY INT_MAX // 最大值∞ #define MAX_VERTEX_NUM 20 // 最大顶点个数 typedef enum {DG, DN, AG, AN} GraphKind; // {有向图,有向网,无向图,无向网} typedef struct ArcCell { VRType adj; // VRType是顶点关系类型。对无权图,用1或0表示相邻否; // 对带权图,则为权值类型。 InfoType *info; // 该弧相关信息的指针 } ArcCell, AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct { VertexType vexs