鄰接表實現

2021-09-13 11:27:16 字數 861 閱讀 4416

鄰接表構建

鄰接表某個頂點遍歷

以上**

#include

#include

#include

#include

using

namespace std;

class

adjacencytable

void

setedge

(int s,

int e,

int weight)

void

getvertexinfo

(int vertex_index)

}public

: vector<

int> u, v, w;

// first[i]陣列儲存的是起始為頂點i的某條邊的編號

// next[i]表示的是編號為i的前一條邊的編號,即編號i和編號next[i]具有相同的起始的頂點

vector<

int> first, next;};

intmain()

table.

getvertexinfo(0);}

資料**注意輸入的結點是從1開始的,輸出調整為從0開始。

6

101 2 6

1 3 1

1 4 5

2 3 5

2 5 3

3 5 6

3 6 4

4 3 5

4 6 2

5 6 6

0->3:5

0->2:1

0->1:6

參考:

圖的儲存結構之鄰接表(詳解)

陣列實現鄰接表

之前我們介紹過圖的鄰接矩陣儲存法,它的空間和時間複雜度都是n 2,現在我來介紹另外一種儲存圖的方法 鄰接表,這樣空間和時間複雜度就都是m。對於稀疏圖來說,m要遠遠小於n 2。先上資料,如下 第一行兩個整數n m。n表示頂點個數 頂點編號為1 n m表示邊的條數。接下來m行表示,每行有3個數x y z...

C Dijkstra鄰接表實現

ifndef mapimplement h included define mapimplement h included include include define maxvertexnum 100 define infinity 65535 using namespace std typede...

C 實現鄰接表

對於無向圖 v0,v1 v1,v2 v2,v3 v0,v2 對應的鄰接表表示就是 在 中,你要單獨對v1 v2 v3建立一種結構體型別。在對後面的節點0,1,2,3建立一種結構體型別 1 include 2 include3 define vertex 4 4using namespace std ...