再议公交查询算法

再议公交查询算法

    前段时间写过一篇《公交路线查询算法》,其中设计了一个数据存储的方案,这里又做了一番改进。

公交路线查询算法》提到的算法最多提供倒乘一次的方案(我觉得在实际应用中也能基本满足需要,如果一个城市公交倒乘一次都不能到达目的地的话,公交也太不发达了)。如果将以下数据初始化为一张图,就可以按照图的路径查询算法来解决公交查询问题了,倒乘多次的方案也能提供。请真正做过公交查询系统的高人指点。

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>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111114.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac进入路径_mac终端找不到命令

    mac进入路径_mac终端找不到命令如果你想将当前commandline会话切换到其他目录,需要用到三个命令:pwd,ls和cd。pwd的含义是“printworkingdirectory”,会显示当前目录的绝对路径。 ls的含义是“listdirectorycontents”,它会列出当前目录的内容。这个命令还有其他参数可选。 cd的含义是“changedirectory”,它会改变当…

    2022年10月10日
    0
  • Add Two Numbers

    Add Two Numbers

    2021年9月7日
    57
  • 服务器网络io性能_服务器热备份方案

    服务器网络io性能_服务器热备份方案介质(HDD/SSD)接口sata/scsicontroller,raid卡or南桥,是否有缓存文件系统xfs,或其他brtfs之类的磁盘队列算法deadlinecfqnoopdm内存缓存设置RAID形式性能RAID0磁盘空间使用率:100%,故成本最低。读性能:N单块磁盘的读性能。写性能:N单块磁盘的写性能。冗余:无,任何一块磁盘损坏都将导致数据不可用…

    2022年9月20日
    0
  • tcp rst报文_TCP报文格式

    tcp rst报文_TCP报文格式RESET报文的接收和检查处理。客户端握手阶段对于TCP客户端,在发送完SYN报文之后,如果接收到的回复报文同时设置了ACK和RST标志,在检查完ACK的合法性之后,处理RST标志,关闭套接口。对于ACK确认序号,其应当大于第一个未确认序号(snd_una),并且,确认序号不应大于未发送数据的序号(snd_nxt)。通常情况下ACK确认序号应当等于snd_una加一(SYN占用一个序号),但是,如果SYN报文中带有数据(例如:TFO),ACK确认序号会更大。以上情况向对端发送reset报文,但是,如果

    2022年10月1日
    0
  • matlab读取mnist数据集(c语言从文件中读取数据)

    mnistdatabase(手写字符识别)的数据集下载地:http://yann.lecun.com/exdb/mnist/。准备数据MNIST是在机器学习领域中的一个经典问题。该问题解决的是把28×28像素的灰度手写数字图片识别为相应的数字,其中数字的范围从0到9.共有四个文件需要下载:train-images-idx3-ubyte.gz,训练集,共60,000幅(28*28)的图像数据…

    2022年4月17日
    50
  • extern用法总结!

    extern用法总结!

    2021年11月28日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号