5 2 2 鄰接表法

2021-07-22 16:46:04 字數 520 閱讀 4483

當乙個圖為稀疏圖時,使用鄰接矩陣表示法顯然要浪費大量的儲存空間。而圖的鄰接表示法結合了順序儲存和鏈式儲存方法,大大減少了這種不必要的浪費。

所謂鄰接表就是對每個頂點vi建立乙個單鏈表,第i個單鏈表中的結點表示依附於頂點vi的邊(對於有向圖則是以頂點vi為尾的弧),這個單鏈表就稱為頂點vi的邊表(對於有向圖則成為出邊表)。邊表的頭指標和頂點的資料資訊採用順序儲存(稱為頂點表),所以在鄰接表中存在兩種結點:頂點表結點和邊表結點。

頂點表結點由頂點域(data)和指向第一條鄰接邊的指標(firstarc)構成

邊表(鄰接表)結點由結點域(adjvex)和指向下一條鄰接邊的指標域(nextarc)構成。

圖的鄰接表儲存結構定義:

#define maxvertexnum 100//頂點數目的最大值

typedef struct arcnodearcnode;

typedef struct vnode{//頂點表結點

vertexttype data;//頂點資訊

鄰接表轉鄰接矩陣

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

鄰接矩陣與鄰接表

鄰接矩陣表示圖 public class graph private int vertexnum private int edgenum private int g 鄰接矩陣 public graph int vertexnum public void insertedge edge edge pu...

靜態鄰接表

靜態鄰接表 用於儲存每個點出發的邊。csdn view plain copy include include using namespace std const long edge maxn 1005 邊的最大上限 const long point maxn 105 點的最大上限 struct no...