【数据结构】图的常用存储结构
2015-11-26 23:11
337 查看
1.邻接矩阵:在图中任意两个顶点之间都有可能存在关系,邻接矩阵就是用n阶方针来保存一个顶点是否对另一个顶点有“意思”。
①无向图
在无向图中两个顶点有边连接就意味着(v0,v1)和(v1,v0)都有“关系”,即彼此“喜欢”对方。方阵的数据沿对角线对称分布。
②有向图
数据分布不对称。
③网的邻接矩阵存储:存在带权的边/弧。如果对对方有“意思”就把前边的“1”改为对应的权值即可。
-------------------------------------------------------------------------------------------------------------------------------------------------------------
2.邻接表AdjacencyList:诞生的理由——如果图中顶点多而边/弧的数目少,即顶点之间关系不好,那么整个方针里边就存了几个“1”,显然就很是浪费存储了,邻接矩阵存储的是顶点之间的关系,从空间的使用效率来说适合用于关系比较丰富的图,前人们为了满足关系简单而“人口”众多的图的最小空间开销想啊想,于是就发明了邻接表。
这种表需要定义两个结构,一个是用来描述顶点的:用于存储顶点的数据信息和指向他“感兴趣”的第一个顶点的指针;另一个是用来描述“被感兴趣”的顶点下标,在有向图中对应的就是出度。
①无向图
在无向图中两个顶点有边连接就意味着(v0,v1)和(v1,v0)都有“关系”,即彼此“喜欢”对方。方阵的数据沿对角线对称分布。
②有向图
数据分布不对称。
③网的邻接矩阵存储:存在带权的边/弧。如果对对方有“意思”就把前边的“1”改为对应的权值即可。
-------------------------------------------------------------------------------------------------------------------------------------------------------------
2.邻接表AdjacencyList:诞生的理由——如果图中顶点多而边/弧的数目少,即顶点之间关系不好,那么整个方针里边就存了几个“1”,显然就很是浪费存储了,邻接矩阵存储的是顶点之间的关系,从空间的使用效率来说适合用于关系比较丰富的图,前人们为了满足关系简单而“人口”众多的图的最小空间开销想啊想,于是就发明了邻接表。
这种表需要定义两个结构,一个是用来描述顶点的:用于存储顶点的数据信息和指向他“感兴趣”的第一个顶点的指针;另一个是用来描述“被感兴趣”的顶点下标,在有向图中对应的就是出度。
相关文章推荐
- 数据结构 — 图 之 关键路径、关键活动 (文字表述)
- 数据结构笔记(郝斌主讲)(2015-11-26 22:12:54更新完毕)
- 数据结构——双端链表(java实现)
- 数据结构——查找和删除指定连接点(java实现)
- 数据结构之红黑树
- 第十二周--数据结构--图 算法库
- 数据结构——单向传统链表(java实现)
- 【Codeforces Round 333 (Div 2)E】【期望DP概率做法 树状数组转前缀和】Kleofáš and the n-thlon n场比赛m个人获得总名次的期望
- 数据结构之栈
- 【C++】【STL】STL中部分数据结构的通俗化解释
- 数据结构——栈与队列
- 数据结构 — 图 之 拓扑排序 (AOV网)
- 数据结构(Java)——优先队列和堆
- SDUT 3364-数据结构实验之图论八:欧拉回路(并查集)
- SDUT 3363-数据结构实验之图论七:驴友计划(最短路_dijkstra)
- SDUT 3362-数据结构实验之图论六:村村通公路(最小生成树_prim)
- SDUT 3361-数据结构实验之图论四:迷宫探索(dfs)
- 《大话数据结构》之Prim算法
- 文章标题
- 数据结构与算法(1)——分解质因数及各种方法求最大公约数