寒假Day32:链式前向星

PS:我觉得邻接表就是vector,可是实验室学的是邻接表是链式前向星的写法。

所以我觉得邻接表是vector的写法(但是邻接表在数据结构书上的画图有事链式前向星!?),开结构体的是链式前向星,邻接矩阵就是邻接矩阵

链式前向星代码:

struct node
{
  int to; // e[i].to 第i条的边的终点
  int nex; //e[i].nex 与第i条边同起点的下一条边的存储位置
  int w; //该边权值
}e[100020];

int head[100020]; //初始化为-1
//以i为起点的第一条边存储的位置,在以i为起点的所有边的最后输入的那个编号. 保存的是以i为起点的所有边中编号最大的那个,而把这个当作顶点i的第一条起始边的位置.

int tot; // 初始化为-1

void add(int u,int v,int w)
{
  e[++cnt].w=w;
  e[cnt].to=v;
  e[cnt].nex=head[u];
  head[u]=tot;
}


//遍历边 倒序
for(int i=head[u];i!=-1;i=edge[i].next) //~i == i!=1 ?

原文地址:https://www.cnblogs.com/OFSHK/p/12329306.html