【暖*墟】 #邻接表# 带权有向图的存储

邻接表的特征

1.树与图结构的一般化储存方式。还能实现开散式Hash。

2.可以看成“带有索引数组的多个数据链表”构成的结构集合

3.这样的结构分成若干类,每类可以构成链表。每类的代表元素称为对应链表的“表头”。

 

插入新的数据节点

通过表头数组head,定位到新的数据节点所属类别的链表表头。

将新数据在对应得到的表头位置处插入。

 

带权有向图的存储

具体代码实现:

//ver数组储存的是每条边的终点
//head、next数组中储存“ver数组的下标”

//加入有向边(x,y),权值为z
void add(int x,int y,int z){
    ver[++tot]=y; c[tot]=z;//连向y,价值为z
    next[tot]=head[x]; head[x]=tot; //在表头x处插入这个点
}
//访问从x出发的所有边
for(int i=head[x];i;i=next[i]){
    int y=ver[i],z=c[i];
}//↑↑↑找到了一条有向边,存储它的连向点y,权值为z

猜你喜欢

转载自blog.csdn.net/flora715/article/details/81099045