链式前向星:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000;
int num = 1;
int n, m;
int head[maxn];
struct node
{
int to;
int next;
int w;
}edge[maxn];
void init()
{
memset(head, -1, sizeof(head));
num = 1;
}
void out_put()
{
for (int i = 1; i <= n; i++)
{
for (int k = head[i]; k != -1; k = edge[k].next)
{
printf("%d->%d w = %d\n",i, edge[k].to,edge[k].w);
}
}
}
int main()
{
int a, b, w;
while (~scanf("%d %d",&n,&m))
{
init();
for (int i = 1; i <= m; i++)
{
scanf("%d%d%d",&a,&b,&w);
edge[num].to = b;
edge[num].w = w;
edge[num].next = head[a];
head[a] = num;
num++;
}
out_put();
}