【数据结构】链式前向星存图以及DFS和BFS遍历

链式前向星

链式前向星可以说是简化版的邻接表,在做算法题的时候可以很容易的使用

她的存储结构分为两个部分,一个是边表结点,一个是顶点表结点(和邻接表非常类似)

//链式前向星的存储结构
struct edge{
    int to;     //指向那个顶点
    int next;   //同起点的下一条边的编号
    int weight; //该边的权重
} edges[MAXSIZE];

边表结点中有3个域,to是这个结点指向的那个结点值,next与该边同结点的下一条边的编号(实际上就是edges的下标)

weight是这条边的权重。

edges是一个数组,她的下标就是边的编号,也就是说我们是给边编好号的,一般从0开始编号。

int head[MAXSIZE];

顶点表结点,如果这个顶点在图中的话,那么head值就不为-1而为其第一条边的编号(当然,也就是构造图的时候以该顶点为起点的最后构造的边的编号,这个有点绕)。

加边操作

//加边操作
void addEdge(int st, int ed, int we){
    edges[sumE].to = ed;
    edges[sumE].weight = we;
    edges[sumE].next = head[st];
    head[st] = sumE++;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值