基礎圖論

什麼是圖?

組成

頂點

有時候會有點權

或是邊權

3

9

4

1

7

3

3

8

2

6

1

9

7

4

基本性質

度數

點的度數:該點連接的邊數

4

2

2

2

1

1

0

路徑

多個相鄰點及其連邊的集合

起點終點相同的路徑

圖的分類

有向圖

3

9

4

1

7

3

3

8

2

6

1

9

7

4

簡單圖

3

9

4

1

7

3

3

8

2

6

1

9

7

4

沒有重邊或自環

完全圖

所有點之間皆有連邊

樹/森林

沒有環的圖稱為森林,每個聯通分量為一樹

二分圖

將點分割為兩個互斥集,且集合內無相鄰點

圖的儲存

鄰接矩陣

二維陣列存圖

n個點:G[n][n]

G[i][j]:從i點連到j點的邊權

\begin{bmatrix} 0&3&0&0&0 \\ 3&7&2&0&8 \\ 0&2&0&6&0 \\ 0&0&6&0&0 \\ 0&8&0&0&0 \end{bmatrix}

2

5

3

1

4

3

8

2

6

7

鄰接串列

vector陣列存圖

n個點:vector G[n]

2

5

3

1

4

3

8

2

6

7

1 : {2,3}

2 : {1,3},{2,7},{3,2},{5,8}

3 : {2,2},{4,6}

4 : {3,6}

5 : {2,8}

圖的遍例

DFS-深度優先搜尋

走到一個點

把所有相鄰點丟進stack

取stack中top繼續走下去

DFS

BFS-廣度優先搜尋

走到一個點

把所有相鄰點丟進queue後端

取queue前端繼續走下去

BFS

基礎圖論

By ck_platypus

基礎圖論

  • 334