wenbao與鄰接表

2022-04-17 04:08:38 字數 1858 閱讀 5814

結構體儲存

1

struct

edge

2edge[maxn];

5int

head[maxn];

6void addedge(int x,int y,int

val)

7

呼叫

1

void use(int

x)7 }

vector儲存

1 #include 2 #include 3

struct

edge8};

9 vector g[maxn];

10void add(int x,int y,int

z)

呼叫

1

void use(int

x)7 }

陣列模擬

1

const

int maxn = 1e5+10;2

const

int maxr = 2e5+10;3

int index = 1

, to[maxn], w[maxn], pre[maxn], p1[maxn];4//

插入5intx, y, z;

6for(int i = 0; i < n; ++i)

1011

//遍歷

12for(int i = p[v]; i; i =pre[i])

例題:一般與搜尋一起用

南洋理工 --吝嗇的國度  

vector(動態陣列) 好用

上**

1 #include 2 #include 

3 #include 4 #include 5

using

namespace

std;

6const

int maxn = 1e5+10

;7 vectorv[maxn];

8int

a[maxn];

9void dfs(int

x)13}14

intmain()

26dfs(m);

27 a[m]=-1;28

for(int i = 1; i <= n; i++)

32 cout<33 memset(v,0,sizeof

(v));

34 memset(a,0,sizeof

(a));35}

36return0;

37 }

hdu 2586 :

1 #include 2 #include 

3 #include 4 #include 5

using

namespace

std;

6const

int maxn = 1e5+10

;7 vectorv[maxn];

8 vectorvn[maxn];

9int

a[maxn];

10int dfs(int x, int y, int

sum)

14else

if(!a[v[x][i]])

15 a[v[x][i]] = 1, dfs(v[x][i], y, sum+vn[x][i]);16}

17}18int

main()

36for(int i = 0; i < y; i++)

42 flag = 1;43

}44return0;

45 }

只有不斷學習才能進步!

鄰接矩陣與鄰接表

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

鍊錶與鄰接表

對於稀疏圖來說,m要遠遠小於n21 2 3 4 5 6 4 5 1 4 9 4 3 8 1 2 5 2 4 6 1 3 7 第一行兩個整數n m。n表示頂點個數 頂點編號為1 n m表示邊的條數。接下來m行表示,每行有3個數x y z,表示頂點x到頂點y的邊的權值為z。下圖就是一種使用鍊錶來實現鄰接...

鍊錶與鄰接表

鍊錶 陣列是一種支援隨機訪問,但不支援在任意位置插入或刪除元素的資料結構。與之相對應,鍊錶支援在任意位置插入或刪除,但只能按順序依次訪問其中的元素。我們可以用乙個struct 表示鍊錶節點,其中可以儲存任意資料 另外用prev和next兩個指標指向前後相鄰的兩個節點,構成乙個常見的雙向鍊錶結構。為了...