【考研计算机专业课】湖南大学 数据结构课件 实验六
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 此题为求有向网中顶点间最短路径问题,可建立以票价为权的邻接矩阵,用 Dijkstra 算法求最短路径长度。
(3) Dijkstra 算法中有一个辅助向量 D,表示当前所找到的从源点到其它点的最短路径长 度。因为每次都要在 D 中找最小值,为提高性能,用最小值堆的优先队列存储 D 值。
(4) 考虑没有路径时的输出。
问题描述
若用有向网表示某地区的公路交通网,其中顶点表示该地区的一些主要场所,弧表示已 有的公交线路,弧上的权表示票价。试设计一个交通咨询系统,指导乘客以最少花费从该地 区中的某一场所到达另一场所。
基本要求
(1) 从文件中读入有向网中顶点的数量和顶点间的票价的矩阵。 (2) 以用户指定的起点和终点,输出从起点到终点的花费。
实验 6 最短路径问题
背景
乘汽车旅行的人总希望找出到目的地的尽可能短的行程。如果有一张地图并在图上标出 每对十字路口之间的距离,如何找出这一最短行程?
计算机网络中的路由就是通过互联的网络把信息从源地址传输到目的地址的活动。为了 高效引导数据的传输,如何找出源和目的地址之间的最优路径?
这些问题中的网络(交通网,计算机通信网)可以使用一个带权图来建模,寻找最优路 的需求可转换为带权图的最短路径问题。最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和边组成的)中两结点之间的最短路径。 问题具体的形式包括:
测试数据
输入 (文件) 5 -1 10 3 20 -1 -ห้องสมุดไป่ตู้ -1 -1 5 -1 -1 2 -1 -1 15
-1 -1 -1 -1 11 -1 -1 -1 -1 -1 (用户) 起点 0 终点 4 输出 18
实现提示
(1) 设图的顶点大于 1 个,不超过 30 个,每个顶点用一个编号表示(如果一个图有 n 个 顶点,则它们的编号分别为 0, 1, 2, 3, …, n-1)。
选作内容
(1) 以用户指定的起点,输出到其它各点的花费。 (2) 以用户指定的起点和终点,输出从起点到终点的花费以及路径(经过的中间顶点)。
课后题目
全局最短路径问题,求图中所有点对的最短路径。(提示:使用 Floyd-Warshall 算法)
确定起点的最短路径问题,即已知起始结点,求最短路径的问题。适合使用 Dijkstra 算法。
确定终点的最短路径问题,与确定起点的问题相反,该问题是已知终结结点,求最 短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题 等同于把所有路径方向反转的确定起点的问题。
确定起点终点的最短路径问题,即已知起点和终点,求两结点之间的最短路径。 全局最短路径问题,求图中所有的最短路径。适合使用 Floyd-Warshall 算法。
(3) Dijkstra 算法中有一个辅助向量 D,表示当前所找到的从源点到其它点的最短路径长 度。因为每次都要在 D 中找最小值,为提高性能,用最小值堆的优先队列存储 D 值。
(4) 考虑没有路径时的输出。
问题描述
若用有向网表示某地区的公路交通网,其中顶点表示该地区的一些主要场所,弧表示已 有的公交线路,弧上的权表示票价。试设计一个交通咨询系统,指导乘客以最少花费从该地 区中的某一场所到达另一场所。
基本要求
(1) 从文件中读入有向网中顶点的数量和顶点间的票价的矩阵。 (2) 以用户指定的起点和终点,输出从起点到终点的花费。
实验 6 最短路径问题
背景
乘汽车旅行的人总希望找出到目的地的尽可能短的行程。如果有一张地图并在图上标出 每对十字路口之间的距离,如何找出这一最短行程?
计算机网络中的路由就是通过互联的网络把信息从源地址传输到目的地址的活动。为了 高效引导数据的传输,如何找出源和目的地址之间的最优路径?
这些问题中的网络(交通网,计算机通信网)可以使用一个带权图来建模,寻找最优路 的需求可转换为带权图的最短路径问题。最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和边组成的)中两结点之间的最短路径。 问题具体的形式包括:
测试数据
输入 (文件) 5 -1 10 3 20 -1 -ห้องสมุดไป่ตู้ -1 -1 5 -1 -1 2 -1 -1 15
-1 -1 -1 -1 11 -1 -1 -1 -1 -1 (用户) 起点 0 终点 4 输出 18
实现提示
(1) 设图的顶点大于 1 个,不超过 30 个,每个顶点用一个编号表示(如果一个图有 n 个 顶点,则它们的编号分别为 0, 1, 2, 3, …, n-1)。
选作内容
(1) 以用户指定的起点,输出到其它各点的花费。 (2) 以用户指定的起点和终点,输出从起点到终点的花费以及路径(经过的中间顶点)。
课后题目
全局最短路径问题,求图中所有点对的最短路径。(提示:使用 Floyd-Warshall 算法)
确定起点的最短路径问题,即已知起始结点,求最短路径的问题。适合使用 Dijkstra 算法。
确定终点的最短路径问题,与确定起点的问题相反,该问题是已知终结结点,求最 短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题 等同于把所有路径方向反转的确定起点的问题。
确定起点终点的最短路径问题,即已知起点和终点,求两结点之间的最短路径。 全局最短路径问题,求图中所有的最短路径。适合使用 Floyd-Warshall 算法。