为大家奉上用它写的一个小程序(打印邻接表):
#include<bits/stdc++.h>
using namespace std;
const int maxn=105;
struct edge{
int t,u;
};
struct{
int u,c;
int rn,cn;
edge x[maxn],y[maxn];
}g[maxn];
void addedge(int s,int t,int u){
g[s].y[g[s].cn++]={t,u};
g[t].x[g[t].rn++]={s,u};
}
void allnb(int a){
for(int i=0;i<g[a].cn;i++){
cout<<g[a].y[i].t<<" "<<g[a].y[i].u<<endl;
}
cout<<endl;
}
int main(){
int n,p;
cin>>n>>p;
for(int i=0;i<n;i++){
cin>>g[i].c>>g[i].u;
}
for(int i=0;i<p;i++){
int a,b,c;
cin>>a>>b>>c;
addedge(a,b,c);
}
for(int i=0;i<n;i++){
allnb(i);
}
}
本蒟蒻觉得这是最直观的一种方式,因为他直接用数组模拟链式关系。