-3

こんにちは、ポイント間の距離のポイントの配列を保持するデータベースがあります。{1 2 5, 2 3 4 , 3 4 2} のようにデータを取得しています

        List<Conniction> tempDeal = ConnictionDAO.getInstance().findAll();

次に、その情報をリストに繰り返します

List<String> oneid = new ArrayList<String>();
 List<String> twoid = new ArrayList<String>();
 List<String> size = new ArrayList<String>();
 for(Conniction obj: tempDeal){
     if(obj!=null) {

             oneid.add(obj.getOneid());

             twoid.add(obj.getTwoid());
             size.add(obj.getSize());

ポイント 1 からポイント 3 までの距離を見つける必要があります。9 である必要があります。どの関数を作成する必要がありますか?

4

1 に答える 1

1

ポイントと距離の情報しかない場合は、完全なグラフ (つまり、各ノードが他のノードに接続されているグラフ) を作成し、このグラフで Dijkstra を実行できます。このようにして、中間ノードを使用して 2 つのノード間のより短いパスを見つけることができます。

これは、距離がメトリックでない場合にのみ有用/意味があることに注意してください。それ以外の場合、2 つのポイント間の直接接続 (つまり、それらの距離) は、中間ノードを使用した距離よりも常に小さいか等しくなります。

于 2012-06-30T11:50:40.030 に答える