链式前向星:结构体写法
前言:
对于稀疏图而言,前向星(邻接表)是必不可少的工具,感性理解前向星,写多了就背下来了
结构体写法:
struct fdfdfd{int next,to,w;}a[1000];//定义
int head[1000],cnt;
void addedge(int x,int y,int w){a[++cnt].to=y; a[cnt].w=w; a[cnt].next=head[x]; head[x]=cnt;}//加边(x,y)边权为w
for(int i=head[x];i!=0;i=a[i].next) x=i,y=a[i].to,w=a[i].w;//遍历以x起始的边,(x,y)边权 w 如左表示
理解:
- 其中edge[i].to表示第i条边的终点
- edge[i].next表示与第i条边同起点的下一条边的存储位置
- edge[i].w为边权值
- head[i]保存的是以i为起点的所有边中编号最大的那个