连通图

大话数据结构读书笔记系列(七)图

妖精的绣舞 提交于 2019-11-26 11:58:43
7.1 开场白 旅游几乎是每个年轻人的爱好,但没有钱或没时间也是困惑年轻人不能圆梦的直接原因。如果可以用最少的资金和最少的时间周游中国甚至是世界一定是非常棒的。假设你已经有了一笔不算很丰裕的闲钱,也有了约半年的时间。此时打算全国性的旅游,你将会如何安排这次行程呢? 我们假设旅游就是逐个省市进行,省市内的风景区不去细分,例如北京玩7天,天津玩3天,四川玩20天这样子。你现在需要做的就是制订一个规划方案,如何才能用最少的成本将图7-1-1中的所有省市都玩遍,这里所谓最少的成本是指交通成本与时间成本。 如果你不善于规划,很有可能就会出现如玩好新疆后到海南,然后再冲向黑龙江这样的荒唐决策。但是即使是紧挨着省市游完的方案也会存在很复杂的选择问题,比如游完湖北,周边有安徽,江西,湖南,重庆,陕西,河南等省市,你下一步怎么走最划算呢? 你一时解答不了这些问题是很正常的,计算的工作本来就非人脑应该是电脑去做的事情。我们今天要开始学习最有意思的一种数据结构--图。在图的应用中,就有相应的算法来解决这样的问题。学完这一章,即便不能马上获得最终答案,你也大概知道应该如何去做了。 7.2 图的定义 在线性表中,数据元素之间是被串起来的,仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继。在树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中多个元素相关