常用数据结构之图
数据结构是一种特殊的组织和存储数据的方式,使我们可以更高效的对存储的数据执行操作。以下介绍常用的数据结构中的图结构。
图通常用来标识和存储具有“多对多”关系的数据,一个图由一组有限的顶点及一组连接这些顶点的边组成。
图的概念:
图G由V(顶点的有穷非空集合)和E(边的有穷集合)组成,记为G=(V,E)。E可为空,表示图G只有顶点而无边。
图的类型:
对于图G,若边集E(G)为有向边的结合,则称该图为有向图;或边集E(G)为无向边的结合,则称该图为无向图。
- 有向图
在下图的有向图中,顶点对于<V4,V1> 是有序的,它称为从顶点V4到顶点V1的一条有向边。
因此下图中的有向图的顶点集合为V={V1,V2,V3,V4},边集E={<V1,V3>,<V3,V4>,<V4,V1>},<V1,V2>}
- 无向图
在下图的无向图中,顶点对(V1,V2)是无需的,它称为与顶点V1和顶点V2相关联的一条边。这条边没有特定的方向,(V1,V2)和(V2,V1)是同一条边。
因此下图中的有向图的顶点集合为V={V1,V2,V3,V4},边集E={(V1,V3),(V3,V4),(V4,V1)},
图的应用:
- 用于表示社交媒体网络,每个用户是一个顶点,用户连接时创建一条边。
- 用于表示搜索引擎的网页和链接。每个网页是个顶点,网页键的超链接是一条边。
- 用于表示GPS中的位置和路线。位置是顶点,连接位置的路线是边。用于计算两个位置间的最短路径。
以上总结参考:https://mp.weixin.qq.com/s/rycQvasVNGcozyDiropSow、http://data.biancheng.net/view/200.html