鄰接矩陣與鄰接表

2021-09-29 16:31:43 字數 1662 閱讀 6955

/* 鄰接矩陣表示圖 */

public

class

graph

}private

int vertexnum;

private

int edgenum;

private

int g[

];// 鄰接矩陣

public

graph

(int vertexnum)

public

void

insertedge

(edge edge)

public

void

show()

system.out.

println()

;}}}

假設當前的圖是無向圖,那麼矩陣關於主對角線對稱,我們可以只提取下三角或上三角的資訊。

對於稀疏圖,矩陣中存在大量的0,浪費空間。

假設當前的圖是無向圖,那麼矩陣關於主對角線對稱,我們可以只提取下三角或上三角的資訊。

對於圖來說,鄰接矩陣是不錯的一種圖儲存結構,但是我們也發現,對於邊數相對頂點較少的圖,這種結構是存在對儲存空間的極大浪費的。因此我們考慮另外一種儲存結構方式:鄰接表(adjacency list),即陣列與煉表相結合的儲存方法。

/* 鄰接表表示圖 */

public

class

graph2

}class

vertex

private

int vertexnum;

private

int edgenum;

private vertex vertexarr;

// 頂點陣列

public

graph2

(int vertexnum)

}// 插入有向邊

public

void

insertedge

(int v1,

int v2,

int weight)

current =

newnode

(v2, weight, null)

;// 在鍊錶末尾插入新的節點

// 如果是無向圖,還要再插入邊

current = vertexarr[v2]

.first;

while

(current != null)

current =

newnode

(v1, weight, null)

;// 在鍊錶末尾插入新的節點

}}

鄰接表轉鄰接矩陣

假設無向圖g採用鄰接矩陣儲存,編寫乙個演算法輸出鄰接表。description 第一行為乙個 整數n,表示頂點的個數 頂點 編號為0到n 1 接下來是為乙個n n大小的 整數矩陣,表示圖的鄰接關係。數字為0表示不鄰接,1表示鄰接。input 輸出圖g的鄰接表。第一行表示頂點0可直接到達的 頂點編號。...

鄰接矩陣 鄰接鍊錶 轉換

include include include graph.h include using namespace std typedef int infotype define maxv 100 最大頂點個數 define inf 32767 inf表示 以下定義鄰接矩陣型別 typedef stru...

C 拓撲排序(鄰接矩陣與鄰接表

博主新手,最近在學習拓撲排序,查閱網上資料發現有些難懂且很多方法的 不盡相同,於是就想著試試自己能不能寫出來,經過一段時間的嘗試,最終實現了拓撲排序,現在將自己的想法發表出來,可能有些瑕疵,希望各位看後不吝賜教 不知道是不是就是網上的方法,之前看網上的沒看懂.建立鄰接矩陣,輸入頂點數和邊數,初始化所...