资源简介
算法中将一条线视为一个结点,采用广度优先搜索,利用树结构存储搜索结果,算法效率高,在武汉地铁11条线路190余个站点的线网图中测试,任意两点间的所有路径平均耗时0.2秒。只要对算法中的费用矩阵做调整,即可适用于公交等其他网络。
代码片段和文件信息
package com.bean;
import java.util.ArrayList;
import java.util.List;
public class Line {
private int id; //线路id
private List stationList = new ArrayList();//本条线的车站列表
private boolean isCircle ;//是否为环线
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public List getStationList() {
return stationList;
}
public void setStationList(List stationList) {
this.stationList = stationList;
}
public boolean isCircle() {
return isCircle;
}
public void setCircle(boolean isCircle) {
this.isCircle = isCircle;
}
public Station getStation(int id)
{
for(Station sta : stationList)
{
if(sta.getId()==id)
{
return sta;
}
}
return null;
}
public List> getPathInLine(int startStaIdint endStaId)
{
List result1 = new ArrayList();
List result2 = new ArrayList();
result1.add(startStaId);
result2.add(startStaId);
int temp = startStaId;
while(temp!=endStaId && getStation(temp).getNextSta()!=null)
{
Station sta = getStation(temp);
temp = sta.getNextSta().getId();
result1.add(temp);
}
temp = startStaId;
while(temp!=endStaId & getStation(temp).getPrevSta()!=null)
{
Station sta = getStation(temp);
temp = sta.getPrevSta().getId();
result2.add(temp);
}
List> result = new ArrayList>();
if(result1.get(result1.size()-1) == endStaId)
{
result.add(result1);
}
if(result2.get(result2.size()-1) == endStaId)
{
result.add(result2);
}
return result;
}
public Station getStation(String name) {
// TODO Auto-generated method stub
for(Station sta : stationList)
{
if(sta.getName().equals(name))
{
return sta;
}
}
return null;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 422 2018-07-27 18:51 PathSearch\.classpath
文件 386 2018-04-13 13:11 PathSearch\.project
文件 598 2018-04-13 13:11 PathSearch\.settings\org.eclipse.jdt.core.prefs
文件 2987 2018-07-28 11:20 PathSearch\bin\com\bean\Line.class
文件 611 2018-07-28 11:20 PathSearch\bin\com\bean\SolutionTree.class
文件 2073 2018-07-28 11:20 PathSearch\bin\com\bean\Station.class
文件 5166 2018-07-28 11:18 PathSearch\bin\com\bean\TreeNode.class
文件 1513 2018-07-28 11:15 PathSearch\bin\com\main\Enter.class
文件 15449 2018-07-27 21:01 PathSearch\bin\com\main\PathSearch.class
文件 4403 2018-07-27 18:51 PathSearch\bin\com\tools\MyDataba
文件 724225 2018-04-13 01:33 PathSearch\mysql-connector-java-5.1.10-bin.jar
文件 1926 2018-07-28 11:20 PathSearch\src\com\bean\Line.java
文件 287 2018-07-28 11:20 PathSearch\src\com\bean\SolutionTree.java
文件 1223 2018-07-28 11:20 PathSearch\src\com\bean\Station.java
文件 5980 2018-07-28 11:18 PathSearch\src\com\bean\TreeNode.java
文件 715 2018-07-28 11:15 PathSearch\src\com\main\Enter.java
文件 18239 2018-07-27 21:01 PathSearch\src\com\main\PathSearch.java
文件 2337 2018-04-13 01:30 PathSearch\src\com\tools\MyDataba
目录 0 2018-07-28 11:11 PathSearch\bin\com\bean
目录 0 2018-07-28 11:11 PathSearch\bin\com\main
目录 0 2018-07-28 11:12 PathSearch\bin\com\tools
目录 0 2018-07-28 11:11 PathSearch\src\com\bean
目录 0 2018-07-28 11:11 PathSearch\src\com\main
目录 0 2018-07-28 11:12 PathSearch\src\com\tools
目录 0 2018-07-28 11:11 PathSearch\bin\com
目录 0 2018-07-28 11:11 PathSearch\src\com
目录 0 2018-04-13 13:11 PathSearch\.settings
目录 0 2018-07-27 18:51 PathSearch\bin
目录 0 2018-04-13 13:12 PathSearch\src
目录 0 2018-07-27 15:52 PathSearch
............此处省略3个文件信息
相关资源
- B*寻路算法 C Sharp实现
- 机动目标跟踪的自适应卡尔曼滤波算
- 单片机加pid算法去控制步进电机的具
- 改进模拟退火算法求解TSP问题
- NS2下zigbee路由算法仿真
- 地表温度反演
- 运输问题的遗传算法解答
- 7.27④ 采用邻接表存储结构,编写一
- FCM算法及其推导过程
- knn算法识别手写体--mnist数据集
- 《并行算法实践》mpi源程序
- 三维Otsu图像分割算法
- opengl 做的很漂亮的一棵树,用分形算
- 操作系统基于动态优先权的进程调度
- 距离矢量算法Distance Vector Algorithm的动
- 基于图像处理的铁轨表面缺陷检测算
- 基于改进_ACS-3-opt_蚁群算法的_TSP
- 基于遗传算法的摄像机自标定
- 蚁群\\基于改进蚁群算法的柔性作业车
- Tomasulo算法实验报告.docx
- CLOSET+ 算法简论
- 一种基于混沌加密的二值图像数字水
- acm模板参考 包括各种算法代码
- 基于遗传算法的改进FCM算法GA-FCM
- CPFSK调制解调算法研究及其DSP实现
- 2019年新疆省赛题解和标程.zip
- 华中科技大学2018算法实验
- 操作系统-页面置换算法的模拟实现及
- 判断字符序列是否是回文
- 遗传算法优化RBF神经网络
评论
共有 条评论