链式前向星,一般使用建立边结构体来解决最小生成树问题,在最小生成树中的Prim算法中使用到。这里主要考虑一下链式前向星的理解。
明确以下5点:
1.
其出发点是建立在“边结构体”上的,结构体是为了边建立的。
对于以下“边结构体”的代码
struct edge{
int v;
int nex;
int weight;
}
有这么几个含义:
(1)“edgr[i].v”指的是这条边“指向的终点”;
(2)“edgr[i].nex”指的是同一起点的这条边的下一条边(个人理解:由于在使用时是逆向使用,因此也可以认为是同一起点的上一条边;我自己联想到的是每一个起点都是链表形式存下所有边,把最后一次存入的边为第一个输出,后面依次找到他们);
(3)“edge[i].weight”指的是这条边的“权值”。
2.
“id[n]”数组,用来记录以i为起点的第一条边的位置(不如说是最后一条边的位置,因为用这一条边去找之前的边,直到第一条边为止,这样来找到所有的属于这个起点的边),常常“id[n]”数组的值都初始化为-1;另外这个数组是在不断更新的。