图是一种常见的抽象模型,在计算机专业中的应用尤其广泛。数据结构和算法是计算机专业的必修课程,而图则是数据结构和算法课上的必修内容,图论问题是算法竞赛的常客,图的重要性可见一斑。其它算法学的再好,不会图论的话,那永远也称不上是算法高手。那么问题就来了,怎么学习图算法呢。
要学习图算法,首先咱得有个图不是,所以学习图算法的第一关就这么来了--怎样能创建/存储图呢?
一.基本概念
再讲具体的存储之前,先讲一下图的基本概念
图可以描述现实世界的许多状态,由结点和结点之间的连线组成,图的相同与否仅与结点和边的数量有关和连线的具体长度和结点的位置无关。比如:
上面的两个图就表示了同一个图形。当然,这里说的相同与否是在同一类型下的图的比较。图可以分成很多种类。
1.可以通过边有无方向把图分成有向图和无向图和混合图
(1)每一条边都是无向边的图称为无向图,上面图中的两个图都是无向图。
(2)每一条边都是有向边的图称为有向图,下面图中的图就是有向图。