鄰接矩陣的優勢:ios
(1)能夠經過M[u][v]直接引用邊(u, v), 所以只需常數時間(O(1))便可肯定頂點u 和頂點v 的關係數組
(2)只要更改M[u][v] 就能完成邊的添加和刪除, 簡單且高效O(1)spa
鄰接矩陣的缺點:code
(1)消耗的內存空間等於頂點的平方數。若是圖的邊數較少(稀疏圖),則會浪費大量的內存空間blog
(2)一個鄰接矩陣中,只能記錄頂點u 到頂點v 的一個關係(一個基本型的二維數組中,沒法在同一對頂點之間畫出倆條邊)內存
代碼:ci
1 #include<iostream> 2 using namespace std; 3 4 static const int N = 100; 5 6 int main() { 7 int M[N][N]; 8 int n, u, k, v; 9 10 cin >> n; 11 12 for(int i = 0; i < n; i++) { 13 for(int j = 0; j < n; j++) { 14 M[i][j] = 0; 15 } 16 } 17 18 for(int i = 0; i < n; i++) { 19 cin >> u >> k; 20 u--; 21 for(int j = 0; j < k; j++) { 22 cin >> v; 23 v--; 24 M[u][v] = 1; 25 } 26 } 27 28 for(int i = 0; i < n; i++) { 29 for(int j = 0; j < n; j++) { 30 if(j) cout << " "; 31 cout << M[i][j]; 32 } 33 cout << endl; 34 } 35 36 return 0; 37 } 38 39 /* 40 4 41 1 2 2 4 42 2 1 4 43 3 0 44 4 1 3 45 */