存图方式之邻接表
头文件
#include<vector>
代码实现
#include <stdio.h>
#include <vector>
vector<int> con[109];
int main()
{
        int i,p,j,n,t;
        int m,a,b;
        scanf(“%d%d”,&n, &m);
        while(m—)                             //存图
        {
            scanf(“%d%d”,&a,&b);
            con[a].push_back(b);
            con[b].push_back(a);  // 无向图
        } 
        
        for(i = 1; i <= n ; i++) {         //遍历图
                for(j = 0; j < con[i].size(); j++) {
                        printf(“%d -> %d\n”, i, con[i][j]);
                }
        }
        
        return 0;
}
#include <stdio.h>
#include <vector>
struct edge{
    int to;
    int w;    
};
vector<struct edge> con[109];
int main()
{
        int i,p,j,n,t;
        int m,a,b,c;
        struct edge mid;
        cin >> n >> m;
        while(m—)                                   //存图
        {
                cin >> a >> b >> c;
                mid.to = b;
                mid.w = c;
                con[a].push_back(mid);
                
                mid.to = a;                             //无向图
                con[b].push_back(mid);
        }
        
        for(i  = 1; i  <= n; i++)
        {
                for(j = 0; j < con[i].size(); j++)
                {
                        cout << con[i][j].to << “  ” << con[i][j].w << endl;
                }
        }
        return 0;
        
}