一、邻接矩阵(数组)
1.一维数组:用于存储顶点信息。
2.二维数组:用于存储图中顶点之间关联关系-邻接矩阵
特点:1.存储空间:无向图:n(n+1)/2 有向图:n^2
2.度:无向图:TD(vi)= ∑A[ i,j ] (j = 1~n) 有向图:OD(vi)= ∑A[ i,j ](j = 1~n) ID(vi)= ∑A[ j,i ] (j = 1~n)
无向图:TD(Vi)(顶点Vi的度) :第i行非零元素的个数,或第i列非零元素的个数
![](https://i-blog.csdnimg.cn/blog_migrate/f610ebf6c93644b00b86bf4b1dd3de7f.png)
有向图:OD(Vi) (顶点Vi的出度):第i行非零元素的个数, ID(Vi)(顶点Vi的入度): 第i列非零元素的个数
![](https://i-blog.csdnimg.cn/blog_migrate/94ff56be85d2e48845cc9e2b55ed5d12.png)
无向网:
![](https://i-blog.csdnimg.cn/blog_migrate/bdc6d9f1dde601000f70b8144fdeebc9.png)
#define INF 0x3f3f3f3f //最大值 ∞
#define MAX_VERTEX_NUM 20 //最大顶点个数
typedef enum { DG,DN,UDG,UDN} GraphKind;
typedef struct ArcCell{
VRType adj; //弧的权值
InfoType *info; //弧的相关信息
}ArcCell, AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct {
VertexType vex