0

ここに表示されているタイプ PriorityVertex は何ですか? getMinSpanningTree メソッドも書いています。

プリムのアルゴリズム

4

1 に答える 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 に答える