Adjacency Matrix , Adjacency List— C++
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的程式碼實作如下:
這兩種儲存方式,應該都不會太難理解。
希望能幫助到各位,一起加油吧!