void add(int u,int v,int w) 2 { 3 edge[cnt].c= w; 4 edge[cnt].to = v; 5 edge[cnt].next = head[u]; 6 head[u] = cnt++; 7 }
第一个出场的是edge.c——权重
好的,我们看到紧随其后的是edge.to——这条边的终点/*前两个还是很好理解的
然后就是最最大佬的部分,edge.next——它指向同一起点的上一条边
我们使用链式前向星时常常会看到这么一条语句for(i=head[u];i;i=e[i].next)//插个介绍,head[u]代表以u为起点的边上一次出现的边的编号
我们可以使用它进行一个bfs
举个栗子
转载自