公车换乘算法:1.按最小站数.
2.最小换乘数
3.最小距离数
4.最短时间(复杂,涉及等待时间)
5.最少费用.
一,最小站数,先建立树,把全部的公车站连起来,可按任一公车总站,尽可能涉及较多的公车路线,然后,对任一线路进行标识,(三号线的A站,三号线B站....),在查找时,可先找出目的地,然后读出目的地的所有线路(站1有一号线,五号线等经过,那再从一号线中寻找有没有包括输入的起始点,与其相关的邻近站点压栈如果没有,再找五号线,再没有也压栈,再从栈中读出一个该线路的一个站点(,相关的邻近站点压栈),然后从该站点读出所有的线路,是否有包括起始点的值.没有的话,再从栈中读出一个该线路的一个站点,若找到有包括起始点的值的线路,则从数据库中读出两站点间的站点数,然后从库数据读出此站与起始点的站数.查找完成,(如果没有一直重复,直到找到包括起始值的该线路,)
二,最小换乘数K:在查找时,可先找出目的地,然后读出目的地的所有线路(站1有一号线,五号线等经过,那再从一号线中寻找有没有包括输入的起始点,与其相关的邻近站点压栈如果没有,再找五号线,再没有也压栈,再从栈中读出一个该线路的一个站点(,相关的邻近站点压栈),然后从该站点读出所有的线路,是否有包括起始点的值.没有的话,再从栈中读出一个该线路的一个站点,若找到有包括起始点的值的线路,则K=1,查找完成,(如果没有一直重复,直到找到包括起始值的该线路,)
三:最小距离数S:可先找出目的地,然后读出目的地的所有线路(站1有一号线,五号线等经过,那再从一号线中寻找有没有包括输入的起始点,与其相关的邻近站点压栈如果没有,再找五号线,再没有也压栈,再从栈中读出一个该线路的一个站点(,相关的邻近站点压栈),然后从该站点读出所有的线路,是否有包括起始点的值.没有的话,再从栈中读出一个该线路的一个站点,若找到有包括起始点的值的线路,则从数据库中读出两站点间的权值,求出两站点距离d0,S=S+d0,然后根据数据库中的值求出此站与起始点的距离d1,s=s+d1.查找完成,(如果没有一直重复,直到找到包括起始值的该线路,)
评论