Graph data structures

Update:

We’ve introduced imbSCI.Graph, a library dedicated to graph structures and conversion between different graph types.
The library adds: DirectedGraph (implementation of the Microsoft’s DGML format), DOT Graph (exportable to DOT graph language) and FreeGraph with weighted nodes and links and powerful reporting and queering capabilities.

DGML graph, rendered in Visual Studio

DGML graph, rendered in Visual Studio


Graph structures in imbSCI.Core:

Universal graph structures:

Basic directed graph-tree structure

Directed tree-graphs are clear parent-children hierarchy collections, where a node can have only parent and none, one or more children nodes.

  • graphNode
    • Namespace: imbSCI.Data.collection.graph (API)
  • graphWrapNode<T> and graph<T>
    • Namespace: imbSCI.Data.collection.graph (API)

graphWrapNode<T> is a generic type, allowing you to have instance of the custom class (T) at each graph node.

Important extensions:

  • imbSCI.Data.imbGraphExtension (API)
  • imbSCI.Data.extensions.data.imbPathExtensions (API)

Universal free graph structure:

Free graphs are consisted of nodes that are not in directed hierarchy, nodes may have links to multiple other nodes. Such graphs are usually data-structures behind flow-diagrams or world wide web representations.

  • diagramModel
    • Namespace: imbSCI.DataComplex.diagram (API)

diagramModel comes with some built-in builders:

 

Specialized graph structures:

  • propertyExpression
    • Namespace: imbSCI.Core.data (API)
  • linknodeElement
    • Namespace: imbSCI.DataComplex.linknode (API)
  • folderNode
    • Namespace: imbSCI.Core.files.folders (API)

 

 

Spread the love