信息存储
利用邻接表存储城市信息与线路信息,比邻接矩阵更加高效。
主要数据结构
I)Time,规范时间的输入输出格式
II)VNode,头结点,用于建立顶点表,存储城市信息
III)ArcNode,表结点,用于建立边表,存储弧指向的城市信息,以及线路信息
IV)InfoType,存储线路信息
V)priority queue,优先队列,用于优化 Dijkstra 算法时的插入结点以及取出到达对应点的最小权值
主要功能及简介
1.查询城市编号:头结点建立顶点表时存储的是城市对应的序号
2.手动添加城市
3.从文件读取以添加城市
4.删除城市:删除城市时需要删除与该城市相关的所有线路
5.输出所有城市
10.更新城市列表:当新建城市个数加原本已存在城市个数大于 MAXSIZE 时,需要开辟空间存储新城市并 ++MAXSIZE
7.手动添加线路
8.插入线路:由于线路信息存于表结点里,所以需要新建表结点并加入对应起始城市的边表
9.从文件中读取线路
10.删除线路
11.求最少花费路径
12.求最少时间路径
核心算法分析
如果想理解我代码中的核心算法部分,推荐看一下我的博客,博文里有本项目运用 dijkstra 算法的分析。博文链接:dijkstra 最小路径算法
截图
代码
放在了github链接里:https://github.com/bw98/National-Transport-Advisory