设为首页 加入收藏

TOP

Java实现Floyd统计天津地铁的站点距离(二)
2015-02-02 14:50:52 来源: 作者: 【 】 浏览:53
Tags:Java 实现 Floyd 统计 天津 地铁 站点 距离
);
? ? ? ? ? ? ? ? ?Vertex++;
? ? ? ? ? ? ? ? ?System.out.println("jilu:" + Vertex);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? // 关闭写文件
? ? ? ? ? ? ? ? read.close();
? ? ? ? ? ? ? ? bufferedReader.close();
? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? System.out.println("找不到指定的文件");
? ? ? }
? ? ? ? ? ?
? ? } catch (Exception e) {
? ? ? ? System.out.println("ReadToWrite……读取文件内容出错");
? ? ? ? e.printStackTrace();
? ? ?}
? System.out.println("ReadToWrite……Devide is over!!!");
?}
?
?/* 功能:把各个站点的路径数和经过的路径统计出来,格式如下;仅仅是为了看齐效果:站点名称
? * @param: destinationPath2? 写文件件的路径名称
? * @调用其他函数: null
? * @return: null
? * 结果示例:
? * ==========================
? Source:二纬路
? Target:津湾广场
? Distance:6
? Path:二纬路-->海光寺-->鞍山道-->营口道-->营口道-->和平路-->津湾广场
? ==========================
? */
?//?
?public void writeText2(String destinationPath2){
? try {
? ?BufferedWriter bufferWriter = new BufferedWriter(new FileWriter(destinationPath2));
? ?String newLine = "";
? ?int p,q,m;
? ? ? for(p=1;p<=Vertex;p++)
? ? ? {
? ? ? ? ? for(q=p+1;q<=Vertex;q++)
? ? ? ? ? {
? ? ? ? ? ?newLine = "\n==========================\nSource:" + mapIDName.get(stationID.get(p)) + "\nTarget:" + mapIDName.get(stationID.get(q)) + "\nDistance:" + Dist[p][q] + "\nPath:" + mapIDName.get(stationID.get(p));
? ? ? ? ? ? ? k=2;
? ? ? ? ? ? ? Root(p,q);
? ? ? ? ? ? ? for(m=2;m<=k-1;m++){
? ? ? ? ? ? ? ?newLine = newLine + "-->" +? mapIDName.get(stationID.get(Line[m]));
? ? ? ? ? ? ? }
? ? ? ? ? ? ? newLine += "\n==========================\n";
? ? ? ? ? ? ? bufferWriter.write(newLine);
? ? ? ? ? }
? ? ? }
? ? ? bufferWriter.close();
? } catch (Exception e) {
? ? ? ? System.out.println("MergeMinDistortByDay_Zheng……读取文件内容出错");
? ? ? ? e.printStackTrace();
? ? }
?}
?/* 功能:把各个站点的路径数和经过的路径统计出来,格式如下;仅仅是站点的编号,这是后面要用到的文件格式。
? * @param: destinationPath2? 写文件件的路径名称
? * @调用其他函数:private void Root(int p,int q) 返回路径所经过的站点
? * @return: null
? */
?// 输出最短路径,仅仅编号之间的对应关系? 2314,533 --> 2314,533,6,2314,2313,529,530,531,532,533
?public void writeText(String destinationPath){
? try {
? ?BufferedWriter bufferWriter = new BufferedWriter(new FileWriter(destinationPath));
? ?String newLine = "";
? ?int p,q,m;
? ? ? for(p=1;p<=Vertex;p++)
? ? ? {
? ? ? ? ? for(q=1;q<=Vertex;q++)
? ? ? ? ? {
? ? ? ? ? ?newLine = "" + stationID.get(p) + "," + stationID.get(q) + "," + Dist[p][q] + "," + stationID.get(p);
? ? ? ? ? ? ? k=2;
? ? ? ? ? ? ? Root(p,q);
? ? ? ? ? ? ? for(m=2;m<=k-1;m++){
? ? ? ? ? ? ? ?newLine = newLine + "," + stationID.get(Line[m]);
? ? ? ? ? ? ? }
? ? ? ? ? ? ? newLine += "\n";
? ? ? ? ? ? ? bufferWriter.write(newLine);
? ? ? ? ? }
? ? ? }
? ? ? bufferWriter.close();
? } catch (Exception e) {
? ? ? ? System.out.println("MergeMinDistortByDay_Zheng……读取文件内容出错");
? ? ? ? e.printStackTrace();
? ? }
?}
?/* 功能:初始化各个站点间的初始距离,即相邻的为1,不相邻的为0,转乘车站坐特殊处理,且转乘车站之间认为路径是1
? * @param: null
? * @调用其他函数: null
? * @return: null
? */
?// init
?private void init(){
? /*|| (stationID.get(p)==280 && 533-stationID.get(q) == 1)
? || (stationID.get(p)==280 && 791-stationID.get(q) == 1) || (stationID.get(p)==533 && 280-stationID.get(q) == 1)
? || (stationID.get(p)==533 && 791-stationID.get(q) == 1) || (stationID.get(p)==791 && 280-stationID.get(q) == 1)
? || (stationID.get(p)==791 && 533-stationID.get(q) == 1)
? || (stationID.get(q)==280 && 533-stationID.get(p) == 1)
? || (stationID.get(q)==280 && 791-stationID.get(p) == -1) || (stationID.get(q)==533 && 280-stationID.get(p) == -1)
? || (stationID.get(q)==533 && 791-stationID.get(p) == -1) || (stationID.get(q)==791 && 280-stationID.get(p) == -1)
? || (stationID.get(q)==791 && 533-stationID.get(p) == -1)*/
? // 初始化
? for(int p=1;p<=Vertex;p++){
? ?for(int q=1;q<=Vertex;q++){// 280 533 791 tj
? ? if(stationID.get(p)-stationID.get(q)==-1 || st
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言字符串操作函数总结 下一篇AngularJS Node.JS Grunt 一个例子

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: