美文网首页
二维数组的构建(链式前向星)

二维数组的构建(链式前向星)

作者: 雨落八千里 | 来源:发表于2019-06-14 01:16 被阅读0次

由于点的数量太大,二维数组存储不了,于是构建结构体
cnt记录的是第几条边
结构体中的next表示的是与此条边相同始点上一条边的id
结构体中的v表示的是此条边的终点
head数组记录的是每个点对应的边的id
head数组初始值全为-1

void add(int x,int y)
{
      edge[++cnt].next=head[x];
      edge[cnt].v=y;
      head[x]=cnt;
      return ;
}

如图8条边,6个顶点
1 2
1 4
2 3
3 6
5 6
4 5
5 1
2 5

edge[1].next=head[1]=-1;
edge[1].v=2;
head[1]=1;

edge[2].next=head[1]=1;
edge[2].v=4;
head[1]=2;

edge[3].next=head[2]=-1;
edge[3].v=3;
head[2]=3;

edge[4].next=head[3]=-1;
edge[4].v=6;
head[3]=4;

edge[5].next=head[5]=-1;
edge[5].v=6;
head[5]=5;

edge[6].next=head[4]=-1;
edge[6].v=5;
head[4]=6;

edge[7].next=head[5]=5;
edge[7].v=1;
head[5]=7;

edge[8].next=head[2]=3;
edge[8].v=5;
head[2]=8;
引用时:
for(int i=head[x];i!=-1;i=edge[i].next)

当x=5时:

i=head[5]=7;
i=edge[7].next=5;
i=edge[5].next=-1;

刚好对应着以5为始点的两条边
第七条和第五条

相关文章

  • 二维数组的构建(链式前向星)

    由于点的数量太大,二维数组存储不了,于是构建结构体cnt记录的是第几条边结构体中的next表示的是与此条边相同始点...

  • 图的存储: 邻接矩阵 邻接链表 链式前向星 = 边集数组+邻接表 链式前向星代码,维护一个head头数组,以及一个...

  • 算法零碎知识点 01

    二分 较为简单的方法,直接套模板就可以 贪心 常与二分结合使用,进行相关的求解 链式前向星 链式前向星:用数组来存...

  • 图论---链式前向星

    链式前向星,存图方法

  • 前向星与链式前向星

    2018-06-18 今天学习了前向星这种数据结构,前向星是一种非常节省空间的存图方式,在ACM比赛中,常见的的存...

  • Pytorch学习笔记三——自动求梯度

    PyTorch提供的autograd包能够根据输入和前向传播过程自动构建计算图,并执行反向传播(链式求导)。 to...

  • 通过给定带上级的二维数组生成无限层级应用

    查询应用得到带pid的二维数组 构建应用

  • typescript中的二维数组和初始化

    在javascript中其实没有二维数组的类型, 我们实现二维数组的方法是向数组的元素插入数组, 而typescr...

  • 2017-5-14 省赛模板

    简介 搜索迷宫(BFS+队列) 最短路Dijkstra+邻接矩阵Dijkstra+链式前向星+优先队列Bellma...

  • Day08

    二维数组 二维数组格式 二维数组初始化 二维数组的遍历 二维数组内存存储细节 二维数组与函数注意点: 主要是看函数...

网友评论

      本文标题:二维数组的构建(链式前向星)

      本文链接:https://www.haomeiwen.com/subject/nchdfctx.html