前段时间写过一篇《公交路线查询算法》,其中设计了一个数据存储的方案,这里又做了一番改进。
《公交路线查询算法》提到的算法最多提供倒乘一次的方案(我觉得在实际应用中也能基本满足需要,如果一个城市公交倒乘一次都不能到达目的地的话,公交也太不发达了)。如果将以下数据初始化为一张图,就可以按照图的路径查询算法来解决公交查询问题了,倒乘多次的方案也能提供。请真正做过公交查询系统的高人指点。
Struct Stop
{
String Name;
Stop *LastStop;
Stop *NextStop;
} Stop;
数据存储设计如下:
<?xml version=“1.0“ encoding=“utf-8“ ?>
<Map> <!–所有公车站点–>
<Stop>
<Name>圆明园东门站</Name><!–站点名称–>
<Bus><!–在此站停车的车次–>
<Num>656</Num>
<LastStop><!–上一站–>
<name>北京体育大学站</name>
<distance>2</distance><!–据本站距离–>
</LastStop>
<NextStop><!–下一站–>
<name> 清华附中站</name>
<distance>1</distance>
</NextStop>
</Bus>
<!–……
……
……–>
<Bus>
<Num>656</Num>
<LastStop>
<name>北京体育大学站</name>
<distance>2</distance>
</LastStop>
<NextStop>
<name> 清华附中站</name>
<distance>1</distance>
</NextStop>
</Bus>
<Bus>
<Num>656</Num>
<LastStop>
<name>北京体育大学站</name>
<distance>2</distance>
</LastStop>
<NextStop>
<name> 清华附中站</name>
<distance>1</distance>
</NextStop>
</Bus>
</Stop>
<!–……
……
……–>
<Stop>
<Name>清华附中站</Name>
<Bus>
<Num>743</Num>
<LastStop>
<name>圆明园东门</name>
<distance>2</distance>
</LastStop>
<NextStop>
<name> 圆明园东路</name>
<distance>1</distance>
</NextStop>
</Bus>
<!–……
……
……–>
<Bus>
<Num>运通105</Num>
<LastStop>
<name>圆明园东门</name>
<distance>2</distance>
</LastStop>
<NextStop>
<name> 圆明园东路</name>
<distance>1</distance>
</NextStop>
</Bus>
<Bus>
<Num>656</Num>
<LastStop>
<name>圆明园东门</name>
<distance>2</distance>
</LastStop>
<NextStop>
<name> 圆明园东路</name>
<distance>1</distance>
</NextStop>
</Bus>
</Stop>
</Map>
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/111114.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...