图的存储

图的存储方式有邻接矩阵和邻接链表。

邻接矩阵就是开一个二维数组来表示图上两个点之间的连边情况,比较简单,也有弊端,当图比较稀疏时,也就是边数相对少时,会造成大量的空间浪费。

邻接链表也并不复杂,但具体实现方式有很多,下面的代码只是其中一种,还可以使用二维vector,来保存与点相连的边。

 1 int head[maxn], eid;
 2 
 3 struct Edge {
 4     int v, w, next;
 5 } edge[maxm];
 6 
 7 inline void insert(int u, int v, int w) {
 8     edge[++eid].v = v;
 9     edge[eid].w = w;
10     edge[eid].next = head[u];
11     head[u] = eid;
12 }

 

posted @ 2018-08-18 20:02  Mr^Kevin  阅读(105)  评论(0编辑  收藏  举报