STL中的vector实现邻接表

[cpp] view plain copy
 
 print?
  1. /* 
  2.     STL中的vector实现邻接表 
  3.     2014-4-2 08:28:45 
  4. */  
  5.   
  6. #include <iostream>  
  7. #include <vector>  
  8. #include <cstdlib>  
  9. #define MAX 10000  
  10. using namespace std;  
  11.   
  12. struct EdgeNode{ //边表节点类型  
  13.     int to, w; //顶点序号和边长  
  14. };  
  15. vector<EdgeNode> map[MAX];  
  16.   
  17. int main(){  
  18.     EdgeNode e;  
  19.     int n, m, i, j, k, w;  
  20.     cin >> n >> m; //n个顶点m组数据  
  21.       
  22.     for(i = 0; i < m; ++i){  
  23.         cin >> j >> k >> w;  
  24.         e.to = k; e.w = w;  
  25.         map[j].push_back(e);  
  26.     }  
  27.       
  28.     //遍历  
  29.     for(i = 1; i <= n; ++i){  
  30.         for(vector<EdgeNode>:: iterator k = map[i].begin();   
  31.         k != map[i].end(); ++k){  
  32.             EdgeNode t = *k;  
  33.             cout << i << ' ' << t.to << ' ' << t.w << endl;  
  34.         }  
  35.     }  
  36.     system("pause");  
  37.     return 0;  
  38. }  
 
原文地址:https://www.cnblogs.com/yzm10/p/7235501.html