2011-01-07 19 views
-1

助けてください。私は駅間の距離を計算するプログラムを書こうとしています。私は彼らがどこにいるのか、どこに行きたいのかをユーザーから聞きたいのです。これは私がこれまで持っていたものです。ハマった。私は次に何をしますか?ショートパス。距離計算。 java。

import java.util.Arrays; 

public class StationDist { 
    public static void main(String[] args) { 
     double[] stations = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; 
     //Set up the stations array of doubles here 

     double[][] distances = new double[stations.length][]; 
     for(int i=0; i < stations.length; i++) { 
      distances[i] = new double[i+1]; 
      for(int j=0; j<distances[i].length; j++) { 
       distances[i][j] = Math.abs(stations[i] - stations[j]); 
      } 
      //System.out.println(Arrays.toString(distances[i])); 
     } 
     System.out.println("Enter the destnation: "); 
     System.out.println("1 for london."); 
     System.out.println("2 for bristol"); 
     System.out.println("3 for oxford"); 
     System.out.println("4 for warwick"); 
     KeyboardInput in = new KeyboardInput(); 
     int val = in.readInteger(); 
     System.out.println(Arrays.toString(distances[val])); 
    } 

} 
+0

距離は直線ですか?私はちょっと混乱しています。私はあなたがDijkstraのアルゴリズムなどを使用するためにグラフ構造を望んでいると思うので、あなたの宿題の文脈がどんなものか分かりません。 –

答えて

0

私はあなたの入力を実際には理解していません。駅の配列からはすべてが一直線になっているようです。しかし、距離アルゴリズムを実行するには、Djikstraのアルゴリズム(あるノードから他のすべてのノードまでの最短距離を計算する)のようなものを使用することが必要です。詳細およびいくつかの擬似コードについては、http://en.wikipedia.org/wiki/Djikstra%27s_algorithm