结构体的代码如下:
struct sss
{
    int v; //终点
    int w; //边的权值
    int next;
}edge[范围];

head数组一般初始化为-1;
对于加边函数add来说,代码是这样的:

void add(int u,int v,int w)
{
//cnt是从0开始的
    edge[cnt].w=w; //表示边权值
    edge[cnt].v=v; //表示第i条边的终点
    edge[cnt].next=head[u]; //表示与第i条边同起点的下一条边存储的位置
    head[u]=cnt++; //是先等于cnt,然后再++
//head数组表示以i为起点的第一条边储存的位置,实际上,第一条边存储的位置其实在以i为起点的所有边的最后输入的那个编号,因为是倒着遍历的,所以也就是相反的。
}

//遍历点x的所有边
for (int i = head[x];i!=-1;i=a[i].next)
{}