下面是数组模拟的邻接表的定义
int h[N],e[M],ne[M],w[N];
int idx=0;
首先h[i]指向的是一个以i为起点的边
N是结点的个数 M为边的数量
idx是边的编号,每一个边都有编号所以我们就从0开始按顺序把每一条边赋值一直到N-1
首先为什么h[N]是N其他为M为什么呢,因为h[i]存的是以i为头节点所指向最后一条边的编号,因为一共N个结点,还有就是h[N]不断地更新,每添加一个就更新一下。其他两个都是以边来说的
h[a]是以a为起点最后加进去的边的编号,(注意我们插入的思想相当于头插法,ne[idx]相当于编号为dix的边的下一条边的编号,同样也是一共就一条边,所以idx边的下一条边不存在,既ne[idx]为-1,指向空),刚开始没有边,所以h[a]指向为-1,也就相当于指向空。
有什么问题还望大佬指出,刚刚复习了一下,之前忘记了