链式前向星

参考自:https://blog.csdn.net/acdreamers/article/details/16902023

前向星:

  前向星是一种数据结构,以储存边的方式来存储图。通常用在点的数目太多,或两点之间有多条弧的时候。除了不能直接用起点终点定位以外,前向星几乎是完美的。

  再来看看前向星的构造方法:把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度。

链式前向星:

  

1 void add(int u,int v,int w)
2 {
3     edge[cnt].w = w;
4     edge[cnt].to = v;
5     edge[cnt].next = head[u];
6     head[u] = cnt++;
7 }

  相关解释: 

    u:边的起点

    v:边的终点

    edge[i].to表示第i条边的终点,edge[i].next表示与第i条边同起点的下一条边的存储位置,edge[i].w为边权值。

    head[]是用来表示以i为起点的第一条边存储的位置(注意这里的第一条边并不是字面上的第一条,其实是在以i为起点的所有边的最后输入的那个编号。emmmm,不知道怎么用语言描述,就相当于按某种顺序的第一条开始边吧( ̄▽ ̄)

  

 

posted @ 2018-08-01 15:14  Piccolo_Devil  阅读(164)  评论(0编辑  收藏  举报