1、定义
图Graph是比树更为一般的结构, 也是由节点和边构成,实际上树是一种具有特殊性质的图
图可以用来表示现实世界中很多事物,如道路交通系统、航班线路、互联网连接、或者是大学中课程的先修次序
一个图G可以定义为G=(V, E)其中V是顶点的集合, E是边的集合, E中的每条边e=(v, w), v和w都是V中的顶点;如果是赋权图,则可以在e中添加权重分量
子图: V和E的子集
2、相关术语
(1)顶点Vertex(也称“节点Node”)
图的基本组成部分,顶点具有名称标识Key,也可以携带数据项payload
(2)边Edge(也称“弧Arc”)
作为2个顶点之间关系的表示,边连接两个顶点;边可以是无向或者有向的,相应的图称作“无向图”和“有向图”
(3)权重Weight
为了表达从一个顶点到另一个顶点的“代价”,可以给边赋权;例如公交网络中两个站点之间的“距离”、“通行时间”和“票价”都可以作为权重。
(4)路径Path
图中的路径,是由边依次连接起来的顶点序列;
无权路径的长度为边的数量;带权路径的长度为
所有边权重的和;
如下图的一条路径(v3,v4,v0,v1)
(5)圈Cycle
圈是首尾顶点相同的路径,如上图中(v5,v2,v3,v5)是一个圈,如果有向图中不存在任何圈,则称作“有向无圈
图directed acyclic graph: DAG”,后面我们可以看到如果一个问题能表示成DAG,就可以用图算法很好地解决。