目錄
一、定義結構體
#define MaxVertexNum 100 //頂點數目的最大值
typedef struct{
char Vex[MaxVertexNum]; //頂點表
int Edge[MAXVertexNum][MaxVertexNum]; //鄰接矩陣,邊表
int vexnum,arcnum; //圖的當前頂點樹和邊數/弧數
}MGraph;
對於無向圖
第i個結點的度=第i行(或第1列)的非零元素個數
對於有向圖
第i個結點的出度 = 第i行的非零元素個數
第i個結點的入度= 第i列的非零元素個數
第i個結點的度 = 第i行、第i列的非零元素個數之和
鄰接矩陣法求頂點的度/入度/出度的時間複雜度爲O(|V|)
二、鄰接矩陣法存儲帶權圖(網)
#define MaxVertexNum 100
#define INFINITY 最大的int值
typedef char VertexType;
typedef int EdgeType;
typedef struct{
VertexType Vex[MaxVertexNum];
EdgeType Edge[MaxVertexNum][MaxVertexNum];
int vexnum,arcnum;
}MGraph;
三、鄰接矩陣法的性能分析
空間複雜度:O(|V|)——只和頂點數相關,和實際的邊數無關
適合用於鵆稠密圖
無向圖的鄰接矩陣是對稱矩陣,可以壓縮存在(只存儲上三角區/下三角區)
四、鄰接矩陣法的性質
設圖G的鄰接矩陣爲A(矩陣元素爲0/1),則A^n的元素A^n[i][j]等於由頂點i到頂點j的長度爲n的路徑的數目