#include<cstdio>
#include<vector>
#include<cstdlib>
#include<algorithm>
using namespace std;
const int MAX_i = 10000+1;
int color[MAX_i];//标记颜色的数组
struct edge//存储带权图的结构体
{
int to;//终点
int cost;//边的权值
};
vector<edge> G[MAX_i];//每一个G[i]都是一个vector,而vector的基本元素是结构体edge
//i表示的是起点,所以说一个G[i],表示的是i这个顶点到其他所有相连节点的信息合集
int V, E;//V表示顶点的个数,E表示边的条数
int main(void)
{
int start, end, cost1;
scanf("%d %d", &V, &E);
for(int i = 0; i < E; i++)//输入每条边的数据
{
edge t;
scanf("%d %d %d", &start, &t.to, &t.cost);
G[start].push_back(t);//将与i顶点相连的所有顶点的信息压入基本单位是edge的数组vector中
//vector相当于是一个类二维数组
}
for(int i = 1; i < V; i++)//遍历每一个节点
{
for(int j = 0; j < G[i].size(); j++)//遍历节点对应的vector
{
edge t = G[i][j];
printf("form %d to %d cost is %d \n", i, t.to, t.cost);//输出结构体信息
}
}
return 0;
}
图论基础---图的存储
猜你喜欢
转载自blog.csdn.net/zzuli_xiaomingke/article/details/81273237
今日推荐
周排行