存图方式之邻接表
头文件
#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;
}