#include<cstdio>
int cnt;
struct Edge{
int to; //边的终点
int next;
int w; //边的权值
};
void addEdge(int start,int to,int w){
edge[cnt].w = w;
edge[cnt].to = to; //终点
edge[cnt].next = head[start];
head[start] = cnt++;
}
int dfs(int u)
{
for(int i=head[u]; i!=-1; i=edge[i].next){
v = edge[i].next;
if(!vis[v]) //内容省略
}
}
int main()
{
cnt = 0;
int arc_num;
int u,v,w;
for(int i=1;i<=arc_num;i++){
cin>>u>>v>>w;
addEdge(u,v,w)
}
}
问题一:结构体内的next是什么意思?
问题二:edge[cnt].next = head[start]; head[start] = cnt++; 这两个语句什么意思?
问题三:for(int i=head[u]; i!=-1; i=edge[i].next) 这又是什么意思?
参考:点击