2

グラフデータ構造(隣接リスト構造-有向グラフ)のjavaまたはC#実装を誰かが説明できますか?私はグラフデータ構造の視覚的なアイデアを持っています。しかし、誰かがそれをコードごとに説明するなら。すぐに理解できます……誰でもできますか?

4

1 に答える 1

1

最低限、次の基本構造が必要です。

public class Graph{
    Set<Node> nodes;
}

public class Node{
    Set<Node> adjacent;
}

残っているのは、コンストラクターとアクセサーメソッド、おそらくいくつかの基本的なグラフロジックだけです。アルゴリズムでノードに向けられたエッジを見つける効率的な方法が必要な場合は、2つのadjacentセットがあります(1つは現在のノードに向かうノードを持ち、もう1つは現在のノードに向かうエッジを持つノードを持ちます)。

また、エッジウェイトが必要な場合:

public class Node{
    Set<Edge> adjacent;
}

public class Edge{
    Node target;
    double weight;
}
于 2012-04-15T12:55:23.933 に答える