做题时有时会碰到一些非人类的数据会卡c++STL函数库里的vector函数,因此不得不自己手写一个邻接表,写法和用法如下:
首先我们需要定义一个数组 head[]
int head[maxn];
//head[i]表示节点i所连的最后一条边的编号(这里的最后指输入数据中最后加进来的边)
其次需要定义一个结构体来存贮边的信息
struct node{
int v,w,next;
}edge[maxn*2];//此处的edge表示的是某一条边的信息
//edge[i].v表示编号为i的边是一条指向节点v的边
//edge[i].w表示编号为i的边所带有的权值
//edge[i].next
edge[i].next文字描述相当麻烦,用图表示如下
我们可以看到x,y,z为边的编号,u,v1,v2,v3为点的编号,那么

在遇到大数据问题导致C++ STL vector函数卡顿时,可以手动实现邻接表。通过定义数组head[]和结构体存储边的信息,描述了如何添加边、查询节点连接以及遍历整个图的过程。
最低0.47元/天 解锁文章
2507

被折叠的 条评论
为什么被折叠?



