全国交通咨询系统 by C++ on Linux

信息存储


 

  利用邻接表存储城市信息与线路信息,比邻接矩阵更加高效。

 

主要数据结构


 

  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

 

posted @ 2018-01-05 11:41  bw98  阅读(748)  评论(0编辑  收藏  举报