邻接表的认识
在花1h写了[NOIP2014 提高组] 寻找道路之后,看了神仙的代码,认真的了解了一下邻接表,发现自己现在看懂了!留下一篇笔记吧。
sturct Edge{
int next;//以i节点出发的下(上)一条边的下标(e[next])
int to;//指向的节点
}e[MAXm];//边
int head[MAXn];//以i节点出发的第一条边(最后一条边)(e[head[u]])
int tot;//已添加边的总数
void add(int x, int y)//添加节点x->y的有向边(也可用字母u->v)
{
++tot;
e[tot].to = y;//这条边指向y节点
e[tot].next = head[x];//指向之前的第一条边
head[x] = tot;//把第一条边变为tot
}
//遍历:
for(int i = 1;i <= n;++i)//从i节点出发
for(int j = head[i];j;j = e[j].next)//j表示边的编号,e[j].to是指向的节点的编号
......

浙公网安备 33010602011771号