链式前向星是一种使用 数组模拟链表的一种方式可以用来进行很多操作,接下来展示链式前向星的模板。
int n,m;//点于点和边的数量
struct E{
int to;//记录的该条边终点的位置
int w;//记录该边的权值
int next;//记录的是同起点的上一条边的位置;
}edge[max]; //定义一个边的集合
int head[max];//记录的是以i为起点的最后一条边在的位置
int cot=0;//便于记录位置,代表的是编号
void add(int u,int v,int w){//向边的集合里添加新的边
edge[cot].to=v;
edge[cot].w=w;
edge[cot].next=head[u];
head[u]=con++;
}
void look(){//遍历
for(int i=0;i<n;i++){
for(int j=head[i];j!=-1;j=edge[j].next){
int t;
//接下来你要的操作
}
}
}
void run(){//开始程序前我们应该先将需要的数组等进行初始化
for (int i = 0; i <= n; i++) head[i] = -1;//初始化为-1的原因为之后可以用head[u]是否为-1来判断只不是找完了
cnt = 0;
}