天天看點

有向圖的鄰接矩陣_圖的鄰接矩陣(C語言)

鄰接矩陣

有向圖的鄰接矩陣_圖的鄰接矩陣(C語言)

鄰接矩陣概念

無向圖和有向圖在鄰接矩陣中的表示方法:

有向圖的鄰接矩陣_圖的鄰接矩陣(C語言)

有向圖和無向圖的表示方法

無向圖和有向圖大同小異,在這裡隻以無向圖為例,代碼部分通過簡單調整即可對應編譯有向圖

鄰接矩陣資料類型定義

#define MaxVertices 100 //定義最大容量typedef struct{ //包含權的鄰接矩陣的的定義 int Vertices[MaxVertices]; //頂點資訊的數組 int Edge[MaxVertices][MaxVertices]; //邊資訊的數組 int numV; //頂點數 int numE; //邊數}AdjMatrix;
           

以如關系圖為例

有向圖的鄰接矩陣_圖的鄰接矩陣(C語言)

鄰接矩陣關系圖

根據上圖,我們可以寫出對應的鄰接矩陣:

有向圖的鄰接矩陣_圖的鄰接矩陣(C語言)

通過這個圖可以看出,無向圖對角線劃分出來的兩部分是互相對稱的,由此即可通過建立無向圖的鄰接矩陣:

void CreateGraph(AdjMatrix *G) //圖的生成函數{ int n,e,vi,vj,w,i,j; printf("請輸入圖的頂點數和邊數(以空格分隔):"); scanf("%d%d