0

マップアルゴリズムを構築して、次のことをしたいと思います:

まず、マップ上にすべてのポイントを作成します。

接続されているポイントとそれらの間の長さ (整数として) が既に与えられています。

問題は、それらの間の最短の接続を見つけることです。

したがって、この特定のポイントが接続されているすべてのポイントのリストと、元のポイントからそのポイントまでの長さを含む各ポイントのオブジェクトを作成します。

例は次のとおりです。

A から g までの距離は 7 です

A から c までの距離は 3 です

A が c に接続され、A が g に接続されている場合

私の問題は、HashMap を使用する場合、HashMap をループするのが簡単ではないため、ポイントが接続されているかどうかを確認するのに問題があるということです。

4

3 に答える 3

3

プリムのアルゴリズムダイクストラのアルゴリズム最小スパニング ツリーを参照してください。

頂点のセット(あなたの場合はポイント)とそれらの間のパスの重み(あなたの場合は距離)がある場合、MSTはすべての頂点を接続し、距離の合計が最小のパスのみを提供します。

プリムのアルゴリズムとダイクストラのアルゴリズムを使用して、MST を見つけることができます。

于 2012-10-25T07:42:28.833 に答える
1

Djikstra アルゴリズムの実装(加重グラフで最短経路を見つける) を探していると思います。

ここでの解決策は法案に合っていると思います

于 2012-10-25T07:45:46.530 に答える
0

HashMap のループについて尋ねたので、イテレータを使用してそれを実行することになっています。

HashMap hmap = new HashMap();
hmap.put("a", "hello world!");
hmap.put("b", "goodbye!");
hmap.put("c", 42);
Set s = hmap.entrySet();
Iterator i = s.iterator();
while (i.hasNext()) {
    System.out.println(i.next());
}
于 2012-10-25T07:48:31.220 に答える