Adjacency Matrix , Adjacency List— C++

Sharon Peng
2 min readSep 17, 2020

--

這次簡單提一下圖論的部分。

什麼是圖呢?

我們這邊所說的圖,是有很多點跟邊互相連再一起所形成的圖(Graph),不是我們日常生活中會看到的圖片。

比較類似關係圖

資工還有一大領域會提到圖論,那圖的概念要怎麼用程式碼顯現出來呢?

所以這次就是來講解其中兩種可以儲存圖的方法。

我們下面兩個儲存圖的方式,都會依照下方這個圖去實作。希望透過例子可以讓大家更快瞭解,這兩種儲存方式。

第一個先提到Adjacent Matrix

說簡單一點,就是以陣列的形式去儲存,應該看完以下的圖片就可以知道他是怎麼運作的了。

當 0, 1有連在一起,就在表格 [0][1], [1][0]填入1

當 3, 5有連在一起,就在表格 [3][5], [5][3]填入1

Adjacency Matrix的程式碼實作如下:

第二個是Adjacent Lists,以鏈結串列的形式來儲存圖片。

這邊也不多說,直接看到圖片就知道會怎麼儲存了。

當 0和 1, 2, 3有連在一起,就在 0後面,連接到 1, 2, 3(如下圖)

當 3和 0, 5有連在一起,就在 3後面,連接到 0, 5(如下圖)

Adjacent Lists的程式碼實作如下:

這兩種儲存方式,應該都不會太難理解。

希望能幫助到各位,一起加油吧!

--

--

Sharon Peng
Sharon Peng

No responses yet