链式前向星
0x3f3f3f3f>10亿,且0x3f3f3f3f*2在int范围内。
int最大值2147483647
链式前向星用来存储一个图。
用结构体实现链式前向星
我们定义一个edge结构体数组,存储每一个链表节点里的信息
struct edge{
int ver=-1,nex,bq;//ver当前能走到的节点,nex下一个节点坐标,bq边权
};
存储图用到add函数,将每个边存储进去。
void add(int a,int b,int v){0
cnt++;
e[cnt].ver=b;
e[cnt].bq=v;
e[cnt].nex=head[a];
head[a]=cnt;
}
用数组实现链式前向星
定义
int ver[],head[],bq[],nxt[],cnt=-1;
add函数
void add(int a,int b,int v){
cnt++;
ver[cnt]=b;
bq[cnt]=v;
nxt[cnt]=head[a];
head[a]=cnt;
}
用vector实现链式前向星
定义vector数组
vextor< vector<int> > e(100);
加节点
e[a].push_back(b);
怎样调用函数增加一条边?
add(节点a,指向节点b,边权);
本文介绍了如何使用结构体、数组和vector数据结构实现链式前向星来存储图,包括edge结构体的设计、add函数的编写以及如何通过vector动态添加节点和边权。
1233

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



