QuickGraph — как я могу связать Edge с классом? (т.е. как вы можете с Vertex)

Вопрос 1. Как связать Edge с классом? (т.е. как вы можете с Vertex)

В моем случае есть различные типы краев, которые я хочу моделировать. Итак, мой реальный вопрос, который я думаю, заключается в том, как я могу связать некоторый уровень данных с ребрами (например, тип ребра).

Граф, который я рассматривал, был следующим: ?title=BidirectionalGraph&referringTitle=Документация

Благодарность


person Greg    schedule 27.04.2010    source источник


Ответы (2)


Ребро по умолчанию соединяет только две вершины на графе. Если вам нужна дополнительная информация, связанная с краем (например, «Отношение»), вы можете реализовать интерфейсы IEdge<T> или подкласс Edge<T>. Затем в своем пользовательском классе краев вы можете хранить информацию, относящуюся к этому краю.

i.e.

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>>();
person Doug    schedule 05.05.2010

Вы также можете использовать класс TaggedEdge, который позволяет связать произвольный объект с каждым краем.

person RyanHennig    schedule 11.08.2010