码迷,mamicode.com
首页 > 其他好文 > 详细

图的基本知识

时间:2015-08-11 12:17:25      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:数据结构      

一:图的定义

一个图G=V,E)由定点集V和边集E组成,每一条边都是一个点对(v,w),其中v,w属于V。如果点对是有序的,那么图就叫做有向的。有向的图有时也叫做有向图。定点v,w邻接当且仅当(v,w)属于E。有时候边还有第三种成分,称为权或值。

图的一条路径是一个顶点序列W1W2W3~Wn,使得(WiWi+1)属于E,这样一条路径的长是该路径上的边数,它等于N-1.。从一个顶点到它自身可以看作是一条路径,如果路径不包含边,那么路径长为0,这是定义特殊情况的方便的方法。如果图含有一条从一个顶点到它自身的边(v,w),那么路径v,w也叫做一个环。为们讨论的图一般是无环的。

一条简单路径是这样的:其上所有顶点都是互异的,但第一个顶点和最后一个顶点可能相同。

如果一个无向图中从每一个顶点到每个其他顶点都存在一条路径,则称其为连同的。具有这样性质的有向图称为是强连通的。如果一个有向图不是强连通的,但是它的基础图,即弧上去掉方向所形成的图是连通的,那么该有向图称为是弱连通的。完全图是其每一对顶点间都存在一条边的图。

二:图的表示

我们将考虑有向图(无向图可以类似表示)

表示图的一种简单的方法是使用二维数组,称为邻接矩阵表示法。对于每一条边(u,v),我们置A[u][v]=1,否则数组元素就置0,也就是如果边存在就是1,不存在就是0,如果有权

就将权赋给A[u][v]。而使用一个很大或很小的权做为标记来表示一条不存在的边。

邻接矩阵法很简单,但是它的缺点也很明显,如果一个图的边不多的话,它太浪费空间了,因为矩阵所需要的空间是N^2。如果图的边比较多,那这是比较合适的方法。

如果图是稀疏的,更好的办法是用邻接表来表示。对每一个顶点,我们使用一个表存放所有邻接的顶点。数组表示不方便的一般都用链表代替。

邻接表是表示图的标准方法,每条边出现在俩个表中,所以此空间的使用是双倍的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

图的基本知识

标签:数据结构      

原文地址:http://blog.csdn.net/u012000209/article/details/47417723

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!