数据结构与算法 课程设计 一、问题描述及设计目的 城市公共交通最短线路,利用邻接矩阵来构建交通节点,邻接矩阵的行列编号即为交通中的节点,有行列决定的数据即为权值 基本的输入信息和条件: 1
输入总的节点个数,即为交通中的站点数目 本程序中,站点的数目最大值为 100
输入存在的通路,即为弧两个站点之间是联通的 弧的数目是有限制的,数目小于站点数目[n *(n -1)]/2 3
输入存在通路的两点,即为两站点 站点编号要小于站点总数目 二、应具备的功能 1
确定起点的最短路径问题,即已知起始结点,求最短路径的问题
确定终点的最短路径问题,与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题
在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题
确定起点终点的最短路径问题,即已知起点和终点,求两结点之间的最短路径
三、设计思想、主要算法的实现、基本操作、子程序调用关系 1.Dijkstra 算法的基本思想 按路径长度递增顺序求最短路径算法
2.Dijkstra 算法的基本步骤 设V0 是起始源点,S 是已求得最短路径的终点集合
V-S = 未确定最短路径的顶点的集合, 初始时 S={ V0} ,长度最短的路径是边数为1 且权值最小的路径
下一条长度最短的路径: ① Vi V - S ,先求出 V0 到 Vi 中间只经 S 中顶点的最短路径; ② 上述路径中长度最小者即为下一条长度最短的路径; ② 将所求最短路径的终点加入 S 中; 重复直到求出所有终点的最短路径
3.存储结构设计 本系统采用图结构类型(mgraph)存储抽象交通图的信息
其中:各站点间的邻接关系用图的邻接矩阵类型存储;图的顶点个数及边的个数由分量 n、e表示,它们是整型数据
数据结构如下: typedef str