图论邻接表札记
邻接表是由结构体数组e[ ]+linkk[ ]组成的用于储存图的一种形式,具有代码书写较复杂,找邻接点快的特点。一般采用动态存储结构(指针或数组模拟)存储,在点数>=5000的情况下使用。
ps.忽略本文程序大写
—————————以下正文—————————
——相关基本概念——
A
Struct adjacency//边集结构体
{
Int y;//这条边的终点编号
Int v;//这条边的权值
Int next; //由这条边的起点为起点的下一条边的编号
}e[200000];//边集数组
eg. e[len]//len表示边的编号
e[len].y//表示len这条边的终点编号
e[len].v//表示len这条边的权值
e[len].next//表示由len这条边的起点为起点的下一条边的编号
B
Int linkk[200000];//起点数组(起点表),用于表示从某个点i为起点的第一条边的编号
eg. linkk[x]就存了从起点x出发的第一条边的编号
——相关操作——
以校内题库图论模版题. #301田地上的环 为例
【图论】田野上的环 - 题目 - UniversalOnline Judge
题:FJ 让他的N (1 <= N <=250)只编号为从1到N的奶牛在田地里玩.这些奶牛决定用M条1<=M<=N*(N+1)/2)牛绳将各自连接起来.当然