链式前向星

链式前向星主要用于构建边结构体以解决最小生成树问题,常见于Prim算法。该结构体包括指向终点的顶点、指向同起点下一条边的指针以及边的权重。在Prim算法中,通过id数组记录起点边的位置,并在加边过程中不断更新。无向图需对每条边存两遍,遍历以某节点的所有边时,通过当前边的next指针进行,直到到达-1标记的结束位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链式前向星,一般使用建立边结构体来解决最小生成树问题,在最小生成树中的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;另外这个数组是在不断更新的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值