边表+SPFA
边表,表意就是把边做成一个表,然后对边进行操作,和与点的操作不同。
数据结构:
1 struct NODE{ 2 int last,next,v,nedge; 3 NODE(){ nedge=0; } 4 }edge[MAX]; 5 //=============================== 6 int link[10000],edgenum=0;
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都是为边的地址而不是点,不要理解错。
剩下的明天写。
浙公网安备 33010602011771号