虽然vector建图会方便许多,但一些问题会卡vector建图。
多写几次就会了。
//链式向前星
/*
des:顶点i指向哪个顶点 w 这条边的权值
next:顶点i的下一条边的序号
*/
struct node{
int des,next;
int w;
}e[N<<1];
int head[N],cnt;
//加边
void add(int u,int v,int w){
cnt++;
e[cnt].des=v;e[cnt].next=head[u];
e[cnt].w=w;
head[u]=cnt;
}
//遍历
for(int i=head[u];i;i=e[i].next){
int v=e[i].des,w=e[i].w;
if(v==f) continue;
if(lson) rson=v,rw=w;
else lson=v,lw=w;
}
推荐学习链式向前星更详细文章:https://www.cnblogs.com/wenruo/p/4680930.html