int N=1e5;
struct edge{int to,next;}edge[N<<1];
int head[N],cnt=0;
void init(){
for(int i=0;i<=n;i++)
{
edge[i].next=-1;
head[i]=-1;
}
cnt=0;
}
void addedge(int u,int v){
edge[cnt].to=v;
edge[cnt].next=head[u];
head[u]=cnt;
cnt+=1;
}
一号初始节点head[1]=3(cnt=3)指向四号节点 edge[3(cnt=3)],其中edge[3].to=4 即四号节点 ,同时令edge[3].next=(new)cnt 指向下一个 ... (循环)
有点像指针,如果功能不复杂的话,可以直接简写为vector快捷操作