4

グラフのすべての頂点を表す Vertex クラスという別のクラスを使用する Graph クラスを作成しようとしています。すべての頂点は、接続されている他のノードを追跡できるため、2 つの頂点間の可能な接続を表す Edge クラスが必要かどうかはわかりません。しかし、これが正しいかどうかはわかりません。どう思いますか?

ありがとうございました。

4

2 に答える 2

10

Edgeクラスを使用する必要はありません。隣接リストを使用しても、重み付けされていないグラフを正しく表すことができます。加重グラフの場合、エッジ コストを表す方法が必要なため、Edgeクラスを使用するのが適切です。

class Graph<E> {
    private List<Vertex<E>> vertices;

    private static class Vertex<E> {
        E elem;
        List<Vertex<E>> neighbors;
    }
}
于 2012-04-21T02:10:21.110 に答える
2

通常、表現は、使用目的への適合性に基づいて選択されます。この単純な例では、モデルとしてGraphPanelaのみを使用します。List<Edge>

于 2012-04-21T02:04:08.907 に答える