數據結構筆記——圖的存儲之鄰接矩陣法

目錄

一、定義結構體

二、鄰接矩陣法存儲帶權圖(網)

三、鄰接矩陣法的性能分析

四、鄰接矩陣法的性質

五、總結

一、定義結構體

#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的路徑的數目

五、總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章