存图方法——链式前向星

本文介绍了链式前向星作为大规模图数据存储的解决方案。链式前向星由结构体和head数组两部分组成,结构体表示边,head数组记录每个节点最后输入边的位置。添加边时,将新边插入到已有边之前,并更新head数组。通过遍历链式前向星可以检查图的正确性。
摘要由CSDN通过智能技术生成

常见的存图的方法有 邻接矩阵

但是如果数据过大的话二维数组开不下,这就需要换一种存图的方法,这里介绍链式前向星

链式前向星的结构由两部分组成

第一部分 是一个结构体

typedef struct
{
    int the_end;//边的结尾(默认为0,若边从0开始则需要初始化为-1)
    int w;//边的权值
    int next;//下一条边在edge数组中的下标
}EDGE;
EDGE edge[500005];

edge[i]表示输入的第i条边

第二部分是一个head数组,head[i]表示以i为起点的第一条边在edge数组中的位置,即edge数组的下标

当以i为起点的边增加一条时,假设这条边在edge数组中的位置为edge[j],那么edge[j].next=head[i],然后head[i]=j;

即将以i为起点的第二条边放在第一条边前面,然后让head[i]等于第二条边的位置,也就是说head[i]表示以i为起点的最后输入的那条边在edge中的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值