目录
- 1. 简介
- 2. 存储
- 2.1 矩阵存储
- 2.2 邻接表
- 3 图的遍历
- 3.1 深度优先搜索的方法
- 3.2 广度优先搜索的方法
1. 简介
图(graph)是用于表示物体和物体之间存在某种关系的结构。数学抽象后的“物体”称为节点或顶点(Vertex,node或 point)。节点之间的相关关系称作边(edge),根据图的有向性,边又可以分为:
- 有向边(directed edge或directed link)
- 无向边(undirected edge)
根据定义可以将图分为:
- 无向图(undirected graph) 若图
G
中每条边都没有方向,则称G
为无向图。无向图中顶点v
的度(Degree)是关联于该顶点的边的数目,记为 D ( v ) D{\left(v \right)} D(v)。 - 有向图(directed graph) 若图
G
中每条边都有方向,则称G
为有向图。有向图的有向边也称为弧(arcs),边的起始点称为弧尾,边的终点称为弧头。 - 完全图(complete graph) 有
n
个顶点的无向图,若有 C n 2 = n × ( n − 1 ) 2 C^{2}_{n}=\frac{n\times {\left(n-1\right)}}{2} Cn2=2n×(n−1)条边,则该无向图称为完全图。 - 连通图(connected graph) 基于连通的概念。在一个无向图
G
中,若从顶点 V ( i ) V{\left(i\right)} V(i) 到顶点 V ( j ) V{\left(j\right)} V(j) 有路径相连,则称 V ( i ) V{\left(i\right)} V(i) 和 V ( j ) V{\left(j\right)} V(j) 是连通的。如果G
是有向图,那么连接 V ( i ) V{\left(i\right)} V(i) 和 V ( j ) V{\left(j\right)} V(j) 的路径中所有的边都必须同向。如果图中任意两点都是连通的,那么图被称作连通图。如果此图是有向图,则称为强连通图(需要双向都有路径)。图的连通性是图的基本性质。
无向图 G
如下: