2

Q1 - Edge をクラスに関連付けるにはどうすればよいですか? (つまり、頂点でできるように)

私の場合、モデル化したいさまざまなタイプのエッジがあります。したがって、私の本当の質問は、あるレベルのデータをエッジ (エッジの種類など) に関連付けるにはどうすればよいかということです。

私が使用していたグラフは次のとおりです。 http://quickgraph.codeplex.com/wikipage?title=BidirectionalGraph&referringTitle=Documentation

ありがとう

4

2 に答える 2

4

デフォルトでは、エッジはグラフ上の2つの頂点のみを接続します。エッジに関連付けられた詳細情報(つまり、「関係」)が必要な場合は、IEdge<T>インターフェースまたはサブクラスを実装できますEdge<T>。次に、カスタムエッジクラスに、そのエッジに関連する情報を格納できます。

すなわち

public class MyEdge<TVertex> : Edge<TVertex>
{
    public string Name { get; set; }

    public MyEdge(TVertex source, TVertex target) : base(source, target)
    {
    }
}

... 後で

var graph = new BidirectionalGraph<int, MyEdge<int>>();
于 2010-05-05T21:00:59.727 に答える
3

TaggedEdge クラスを使用することもできます。これにより、任意のオブジェクトを各エッジに関連付けることができます。

于 2010-08-11T05:51:41.237 に答える