边表+SPFA

边表,表意就是把边做成一个表,然后对边进行操作,和与点的操作不同。

数据结构:

1 struct NODE{
2     int last,next,v,nedge;
3     NODE(){ nedge=0; }
4     }edge[MAX];
5  //===============================
6  int link[10000],edgenum=0;
View Code

 

last就是上一个点,next就是下一个点,v就是你这条边的权值,nedge就是下一条边的地址,而link就是储存第一个边以这个点为起点。查询某一个点连这的边的时候就从link【点坐标】开始查询,查询到0就代表没有了。

比如读入第一行两个数N,M;N为点的个数,M为边的个数。

这样的话,边显示应该是

前一个边的地址:起始点:终止点

0 1 2
1 1 3
2 1 4
0 2 5
0 3 4
5 3 5

link的数据为

3 4 6 0 0

这里的3,4,6都是为边的地址而不是点,不要理解错。

剩下的明天写。

posted on 2016-09-28 16:53  fuyun_boy  阅读(250)  评论(1)    收藏  举报

导航