nex[i] : 编号为i的边相同起始节点的前一条边的编号
fir[i] : 存储起始节点为i的最新出现的边的编号
u -> v 边权为w
#include<iostream>
using namespace std;
const int maxn = 1e5 + 5;
struct Node_struct {
int u, v, w;
};
Node_struct node[maxn];
int fir[maxn];
int nex[maxn];
int main() {
//存储邻接表
memset(fir, -1, sizeof(fir));
memset(nex, -1, sizeof(nex));
int n, m;
cin >> n >> m;
for (int i = 1; i <= m; i++) {
cin >> node[i].u >> node[i].v >> node[i].w;
nex[i] = fir[node[i].u];
fir[node[i].u] = i;
}
//遍历邻接表
for (int i = 1; i <= n; i++) {
int temp = fir[i];
while (temp != -1) {
printf("%d %d %d\n", node[temp].u, node[temp].v, node[temp].w);
temp = nex[temp];
}
}
return 0;
}