邻接矩阵表示法
顾名思义,通过一个二维数组来表示对应的图
邻接矩阵是表示顶点之间相邻关系的矩阵。设G=(V,E)是具有n(n>0)个顶点的图,顶点的顺序依次为0~n-1,则G的邻接矩阵A是n阶方阵,其定义如下:
(1)如果G是无向图,则:
A[i][j]=1:若(i,j)∈E(G) 0:其他
(2)如果G是有向图,则:
A[i][j]=1:若<i,j>∈E(G) 0:其他
(3)如果G是带权无向图,则:
A[i][j]= wij :若i≠j且(i,j)∈E(G) 0:i=j ∞:其他
(4)如果G是带权有向图,则:
A[i][j]= wij :若i≠j且<i,j>∈E(G) 0:i=j ∞:其他
代码:
typedef int InfoType;
typedef struct
{
int no;//顶点编号
InfoType info;//其他信息
}VertexType;
typedef struct
{
int edges[MAXV][MAXV];//邻接矩阵
int n, e;//顶点个数,边个数
VertexType vexs[MAXV];//存放顶点信息
}MGraph;
邻接矩阵的特点如下:
(1)