数据结构----图

一:图(Graph)的介绍

1.图是有一个非空的顶点(Vertex)集合以及一个边(Edge)集合组成,用G(V,E)表示,图可以没有边,但一定有顶点(图中的数据元素,我们称为顶点)

2.无向边(v,w) v----w ,表示v和w是相连通的,有向边 <v,w>  v---->w,表示v指向w的边

二:图的存储结构----邻接矩阵

注意:(1).如果有权值,把1换成权值的值即可

对于无向图的存储,怎么节省一半空间呢?

我们可以使用一个一维数组,表示下三角元素即可,长度为N(N+1)/2(N代表元素个数),则Gij下标为:i*(i+1)/2+j

二:图的存储结构----邻接矩阵的优缺点

优点:1.直观,方便检查2个点之间是否存在边

2.对于无向图,方便找到任一顶点的邻接点(有边直接相连的顶点),只需要扫描行或列非0的个数即可

3.方便计算任一顶点的度(从该点发出的边数为出度,指向该点的边树为入度)

无向图:出度和入度相等,扫描行或列非0个数即可

有向图:行非0个数为出度,列非0个数为入度

缺点:对于完全图(任何两个点都有边。即全部数字是1),使用邻接矩阵是最合适的,但是对于稀疏图(点多边少),用一大堆0表示,会浪费空间

猜你喜欢

转载自blog.csdn.net/HZPHYT/article/details/82562501