first[u[i]]中保存顶点u[i]的最后一条边的编号,next[i]储存“编号为i的边的下一条边,先将f中的编号给n,再将f改更新
for(int i = 1; i <= m ;i++){
scanf("%d%d%d", u[i], v[i], w[i]);
next[i] = first[u[i]]; //这里的i为边 而边是唯一的 相当于用两点连接唯一边
first[u[i]] = i;
}
for(int i = 1; i <= n; i++){
k = first[i];//
while(k ! = -1){
printf("%d %d %d\n", u[k], v[k], w[k]);
k = next[k];
}
}
网友评论