目录
1.简介
链式向前星,是一种存树的方法,是基于链表来进行存树,原理是头插法。
2.变量
int ne[N],e[M],idx,w[M],h[N];
这里ne数组代表next,而h数组代表链表的头,e数组是edge,代表当前的边,idx是要插入的值,w根据题目要求,可有可无(代表边权)。
3.实现过程 & 代码
void add(int a,int b,int c)
{
e[idx] = b;
//w[idx] = c;可有可无
ne[idx] = h[a];
h[a] = idx ++;
}
int main()
{
for(int i = 1;i <= n;i++)
{
cin >> a >> b >> c;
add(a,b,w);
add(b,a,w);//当作无向图来存
}
return 0;
}
如图所示,先将新来的值idx的next指向h,让他们两个连在一起。因为h始终为头,所以让h替换掉idx,重复如此,树就存好了。