首先贴上一份贴别好的blog详细的介绍了链式前向星的全过程:
贴上一份板子:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 4e5+100;
struct node{
int to, next, weight;
}edge[maxn];
int cnt;
int head[maxn];
int n;
void add(int u, int v, int weight)
{
edge[cnt].to = v;
edge[cnt].weight = weight;
edge[cnt].next = head[u];
head[u] = cnt++;
}
int main()
{
while(cin>>n){
cnt=0, memset(head, -1, sizeof(head));
for(int i=0; i<n-1; i++){
int u, v, weight;
cin>>u>>v>>weight;
add(u, v, weight);
add(v, u, weight);
}
for(int i=1; i<=n; i++){
for(int j=head[i]; j!=-1; j = edge[j].next){
cout<<edge[j].to<<" ";
}
cout<<endl;
}
}
return 0;
}