前向星是一条绳,长相如下:
父节点x->0(head[x])
父节点x->子节点1(head[x])->0
父节点x->子节点2(head[x])->子节点1->0
父节点x->子节点3(head[x])->子节点2->子节点1->0
定义结构体如下:
struct Edge{ int next,v,w; }edge[maxn]; int tot;
tot是对子节点的编号
head[x]依次变为最新加入的子节点的序号
v是这边连的点的名字
w是这条边的边长
加边的模板如下:
void add(int x,int y,int w) { edge[++tot].w=w; edge[tot].v=y; edge[tot].next=head[x]; head[x]=tot; }
原文:https://www.cnblogs.com/SUMMER20020929/p/10559025.html