ここに表示されているタイプ PriorityVertex は何ですか? getMinSpanningTree メソッドも書いています。
1 に答える
0
このPriorityVertex
例の は、質問者が作成した単なるクラスです。これは、グラフ内の頂点の単純な実装です。
このクラスはComparable
インターフェースを実装します。その理由は、PriorityQueue
その要素を比較する必要があるためです。これは、次の 2 つの方法で実現できます。
- 要素は、
Comparable
インターフェースを実装する必要があります - または、要素を比較する方法をキューに伝える
Comparator
を に渡す必要があります。PriorityQueue
したがって、PriorityVertex
クラスは大まかに次のようになります。
class PriorityVertex implements Comparable<PriorityVertex>
{
private float priority;
// Setters, getters ... whatever the vertex needs
...
// Implementation of the Comparable interface:
@Override
public int compareTo(PriorityVertex other)
{
return Float.compare(this.priority, other.priority);
}
}
于 2014-05-10T15:56:03.857 に答える