全国交通咨询系统 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

 

转载于:https://www.cnblogs.com/Bw98blogs/p/8203520.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值