链式前向星备忘

自以为比较好理解的一种写法

初始化

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
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时已经遍历完所有边了

参考

链式前向星基本原理

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄