图的存储结构之邻接矩阵
#define INFINTE 65535
#define MAXSIZE 100
typedef char VertexType; //顶点类型应由用户定义
typedef int EdgeType; //边上的权值类型应由用户定义
typedef struct graph{
VertexType vexs[MAXSIZE]; //顶点表
EdgeType arc[MAXSIZE][MAXSIZE]; //邻接矩阵
int numNodes, numEdges;
}Graph;
- 顶点表存储每个节点保存的数据
- 邻接矩阵中每个元素arc[i][j]表示i与j之间的权值,或者表示i与j是否连通
邻接矩阵与邻接表比较
相同点:都需要保存节点数据,节点之间的权值,以及图中的节点数和边数这四个重要数据
不同点:在表达两个节点之间关系的方式不同。邻接表是通过一维数组与链表,邻接矩阵是通过二维数组。
邻接表实现讲解: