之前我們介紹過圖的鄰接矩陣存儲法,它的空間和時間復雜度都是N2,現在我來介紹另外一種存儲圖的方法:鄰接表,這樣空間和時間復雜度就都是M。對於稀疏圖來說,M要遠遠小於N2。先上數據,如下。 第一行兩個整數n m。n表示頂點 ...
之前我們介紹過圖的鄰接矩陣存儲法,它的空間和時間復雜度都是N ,如今我來介紹第二種存儲圖的方法:鄰接表,這樣空間和時間復雜度就都是M。 對於稀疏圖來說,M要遠遠小於N 。 先上數據。例如以下。 第一行兩個整數nm。 n表示頂點個數 頂點編號為 n ,m表示邊的條數。接下來m行表示,每行有 個數x y z。表示頂點x到頂點y的邊的權值為z。下圖就是一種使用鏈表來實現鄰接表的方法。 上面這樣的實現方 ...
2017-05-30 13:02 0 1637 推薦指數:
之前我們介紹過圖的鄰接矩陣存儲法,它的空間和時間復雜度都是N2,現在我來介紹另外一種存儲圖的方法:鄰接表,這樣空間和時間復雜度就都是M。對於稀疏圖來說,M要遠遠小於N2。先上數據,如下。 第一行兩個整數n m。n表示頂點 ...
Vertex類 每個頂點使用字典來跟蹤它連接的頂點和每個邊的權重。這個字典稱為'connectedTo'。 Graph類 測試: 輸出: 輸出: ...
PS:鄰接表,存儲方法跟樹的孩子鏈表示法相類似,是一種順序分配和鏈式分配相結合的存儲結構。如這個表頭結點所對應的頂點存在相鄰頂點,則把相鄰頂點依次存放於表頭結點所指向的單向鏈表中。圖的鄰接表儲存方式相對於鄰接矩陣比較節約空間,對於鄰接矩陣需要分別把頂點和邊(頂點之間的關系)用一維數組和二維數組 ...
一、無向圖 1 無向圖——鄰接矩陣 測試環境:VS2008 [cpp:showcolumns] view plain copy print ? ·········10 ...
Dijkstra算法可使用的前提:不存在負圈。 負圈:負圈又稱負環,就是說一個全部由負權的邊組成的環,這樣的話不存在最短路,因為每在環中轉一圈路徑總長就會邊小。 算法描述: 1.找到最短距離已確定的頂點,從它出發更新相鄰頂點的最短距離。 2.以后不需要再關心1中的“最短 ...
vector鄰接表: 遍歷某個鏈表的方法: for(int i=0;i<G[u].size();i++) 最喜歡這種寫法,寫起來快,也非常好理解。 vector鄰接表還有一種魔性寫法: 其實差不多……屬於懶人中的懶人寫法。 數組鄰接表 ...
#include "listGraph.cpp" 如下: ...
為什么采用鄰接表實現? 因為在處理實際問題中,我們經常處理的是稀疏矩陣; 不可接受的; 實現類和方法: 1.點的定義; 2.圖的構造方法; 3.增加點; 4.增加邊; 5.刪除邊; 6.打印頂點表; 7.打印鄰接表; 測試只用了 ...