Topics: graph
Jan 28, 2008 at 9:27 AM
Edited Jan 28, 2008 at 9:28 AM

I would like to get clarification on the following methods as their meanings are not clear:
  • bool IsRealEdge(TEdge edge);
  • int InducedEdgeCount(TVertex source, TVertex target);

Jan 31, 2008 at 4:53 AM
This interface is not yet implemented.
Jan 31, 2008 at 4:58 PM
Hi Pelikhan,

I would like to implement the IHierarchy interface and therefore I am interested in what the IsRealEdge and InducedEdgeCount methods are supposed to do.

I think the idea of the InducedEdgeCount method is to check how many edges there are in a path between the two specified vertices.

However, I cannot think of a meaning for the IsRealEdge method.

Can you please help me with the intended purpose of these two methods?

Jan 31, 2008 at 4:58 PM
Edited Jan 31, 2008 at 5:16 PM
Hi Pelikhan,

Does the IsCrossEdge method have anything to do with the IsRealEdge method? And, was your intention with the IsCrossEdge method to prevent cross edges being added to the hierarchy?

Thanks for your time and efforts Pelikhan :)
Sep 29, 2009 at 9:41 AM

Is there a design rationale for IHierarchy?

I'm in love with QuickGraph: very impressed, but afraid to approach it, let alone touch it ...

and I want to use it for hierarchical graphs.  The hierarchy is a containment relation on the nodes.

There are many ways to model this, e.g. use a TVertex that implements IGraph - and I find it hard to pick one.

I haven't found classes and interfaces for trees or hierarchical graphs in QuickGraph - although some algorithms use trees.

Graph# has something of its own.


My question: what approach do you suggest: do I extend QuickGraph, send my patches and hope for the best,

or is it better to use my own projects and copy over any QuickGraph code I need to modify (e.g. the GraphML serialization)?




Oct 13, 2009 at 9:54 PM

I didn't get much of a response with regards to my questions about the IHierarchy interface. I don't know what Pelikhan's intension is with the IHierarchy interface.


I would just use QuickGraph "as is" and extend it where necessary. Implement the IHierarchy interface and delegate most of the methods to an internal BidirectionalGraph instance.


Good luck rp :)