链式前向星备忘
自以为比较好理解的一种写法
初始化
struct edge{
int v,w,nxt; //e[x].nxt 连接着节点x的下一条边编号
} e[MAXN];
int head[MAXN],ecnt=0; //head[x] 节点x最后连上的边编号
建边
inline void add_edge(int u, int v, int w){
e[++ecnt].v=v;
e[ecnt].w=w;
e[ecnt].nxt=head[u];
head[u]=ecnt; //head[x] 更新节点x最后连上的边编号
}
遍历节点(x)连的边
for(int i=head[x];i!=0;i=e[i].nxt) //当head[x]=0时已经遍历完所有边了