邻接矩阵表示法在图的邻接矩阵表示法中:① 用邻接矩阵表示顶点间的相邻关系② 用一个顺序表来存储顶点信息图的矩阵设G=(V,E)是具有n个顶点的图,则G的邻接矩阵是具有如下性质的n阶方阵:【例】下图中无向图G 5 和有向图G 6 的邻接矩阵分别为A1 和A 2
网络矩阵若G是网络,则邻接矩阵可定义为:其中:w ij 表示边上的权值;∞表示一个计算机允许的、大于所有边上权值的数
【例】下面带权图的两种邻接矩阵分别为A 3 和A 4
图的邻接矩阵存储结构形式说明#define MaxVertexNum l00 //最大顶点数,应由用户定义typedef char VertexType; //顶点类型应由用户定义typedef int EdgeType; //边上的权值类型应由用户定义typedef struct{VextexType vexs[MaxVertexNum] //顶点表EdeType edges[MaxVertexNum][MaxVertexNum];//邻接矩阵,可看作边表int n,e; //图中当前的顶点数和边数}MGragh;注意:① 在简单应用中,可直接用二维数组作为图的邻接矩阵(顶点表及顶点数等均可省略)
② 当邻接矩阵中的元素仅表示相应的边是否存在时,EdgeTyPe可定义为值为0和1的枚举类型
③无向图的邻接矩阵是对称矩阵,对规模特大的邻接矩阵可压缩存储
④邻接矩阵表示法的空间复杂度S(n)=0(n 2 )
⑤建立无向网络的算法
void CreateMGraph(MGraph *G){//建立无向网的邻接矩阵表示int i,j,k,w;scanf("%d%d",&G->n,&G->e); //输入顶点数和边数for(i = 0;i < n;i++) //读入顶点信息,建立顶点表{G->vexs=getchar();}for(i = 0;i < G->n;i++){for(j = 0;j
由于e根据图的定义可知,图的逻辑结构分为两部分:V和E的集合
因此,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,称这个二维数组为邻接矩阵
邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。