邻接表

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];
    }
}

你可能感兴趣的:(邻接表)