第 7 章 图及其算法
本章目标
-
学习什么是图以及如何使用图。
-
使用多种内部表示实现图的抽象数据类型。
-
学习如何用图解决众多问题。
本章的主题是图。与第 6 章介绍的树相比,图是更通用的结构;事实上,可以把树看作一种特殊的图。图可以用来表示现实世界中很多有意思的事物,包括道路系统、城市之间的航班、互联网的连接,甚至是计算机专业的一系列必修课。你在本章中会看到,一旦有了很好的表示方法,就可以用一些标准的图算法来解决那些看起来非常困难的问题。
尽管我们能够轻易看懂路线图并理解其中不同地点之间的关系,但是计算机并不具备这样的能力。不过,我们也可以将路线图看成是一张图,从而使计算机帮我们做一些非常有意思的事情。用过互联网地图网站的人都知道,计算机可以帮助我们找到两地之间最短、最快、最便捷的路线。
计算机专业的学生可能会有这样的疑惑:自己需要学习哪些课程才能获得学位呢?图可以很好地表示课程之间的依赖关系。图7-1 展示了要在路德学院获得计算机科学学位,所需学习课程的先后顺序。

Figure 1. 图7-1 计算机课程的学习顺序