购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.8 图简介

树结构用于描述节点与节点之间“层次”的关系,而图结构却是讨论两个顶点之间“连通与否”的关系,在图中连接两个顶点的边,如果填上加权值(也可以称为成本),这类图就被称为“网络”。图在生活中的应用非常普遍,如图2-68所示。

图2-68 图的应用在生活中非常普遍

图除了应用在算法和数据结构的最短路径搜索、拓扑排序中之外,还能应用在系统分析中以时间为评审标准的性能评审技术(Performance Evaluation and Review Technique,PERT),或者像“IC电路设计”“交通网络规划”等应用。注意:在图论中,图的定义有特定的含义。

城市地铁路线的规划就是图的应用之一,如图2-69所示。

图2-69 城市地铁路线的规划就是图的应用之一

图的理论(简称图论)起源于1736年,是一位瑞士数学家欧拉(Euler)为了解决“哥尼斯堡”问题所想出来的一种理论,就是著名的“七桥问题”。简单来说,就是有7座横跨4个城市的大桥。欧拉所思考的问题是这样的,“是否有人在每一座桥梁只经过一次的情况下,能够把所有地方都走过一次且回到原点。”图2-70所示为“七桥问题”的示意图。

图2-70 “七桥问题”示意图

欧拉当时使用的方法是以图结构来进行分析。他先以顶点表示城市,以边表示桥梁,把连接每个顶点的边数称为该顶点的度数。我们将以如图2-71所示的简图来表示“七桥问题”。

图2-71 以图的抽象方式表示七桥问题

最后欧拉得出一个结论:“当所有顶点的度数都为偶数时,才能从某顶点出发,经过每条边一次,再回到起点。”也就是说,在图2-71中,每个顶点的度数都是奇数,所以欧拉思考的问题是不可能发生的。这个理论就是有名的“欧拉环”(Eulerian Cycle)理论。

但是,如果条件改成从某顶点出发,经过每条边一次,不一定要回到起点,即只允许其中两个顶点的度数是奇数,其余则必须全部为偶数,符合这样的结果就称为欧拉链(Eulerian Chain),如图2-72所示。

图2-72 欧拉链

图的定义

图是由“顶点”和“边”所组成的集合,通常用G=(V,E)来表示,其中V是所有顶点组成的集合,而E代表所有边组成的集合。图的种类有两种:一种是无向图,另一种是有向图。无向图以(V1,V2)表示其边,而有向图则以<V1,V2>表示其边。

1.无向图

无向图(Graph)是一种边没有方向的图,即同边的两个顶点没有次序关系,如图2-73所示。例如(V 1 ,V 2 )与(V 2 ,V 1 )代表的是相同的边。

图2-73 无向图


V={A,B,C,D,E}
E={(A,B),(A,E),(B,C),(B,D),(C,D),(C,E),(D,E)}

2.有向图

有向图(Digraph)是一种每一条边都可以使用有序对<V 1 ,V 2 >来表示的图,并且<V 1 ,V 2 >与<V 2 ,V 1 >表示两个方向不同的边,<V 1 ,V 2 >是指以V 1 为尾端指向头部V 2 的边,如图2-74所示。

图2-74 有向图 PXQbGWy5r+KzB7DYpwle7vYo9ggCmPL1//E0TojCWHf+lKUrpNanXUqPC+543AQM


V={A,B,C,D,E}
E={<A,B>,<B,C>,<C,D>,<C,E>,<E,D>,<D,B>}

点击中间区域
呼出菜单
上一章
目录
下一章
×