在dalao的压迫下本蒟蒻发个博客,给大家讲一下链式前向星(新手,写错了轻喷)
首先说明一点链式前向星适合于稀疏图,而邻接矩阵则更适合稠密图,所以最好看好数据范围再决策使用哪个方法,当然有些题会刚好卡上美滋滋。
我用数组来写一下
int v[M],w[M],fst[N],nxt[M],idx
其中
idx是该边的编号
v数组表示这条边的终点(v[idx]:表示编号为idx的边的终点)
下标:边的编号,存值含义:点(的编号)
w数组表示这条边的权值(道理跟v数组一样)
下标:边的编号,存值含义:边(的权值)
fst数组表示以这个点为首的最第一条边的编号(不断更新,fst[i]表示以i点起点的第一条边)
下标:点的编号,存值含义:边(的编号)
nxt数组表示与这个边有共同起点的上一条边(一边对一边,nxt[idx]表示与idx有同起点的下一条边)
下标:边的编号,存值含义:(下一条)边(的编号)
注:最后一个输入的边反而是第一个,即fst[i]的数值就是最后一个输入的起点为