Show / Hide Table of Contents

Class BidirectionalGraph<TVertex, TEdge>

Mutable directed graph data structure.

Inheritance
System.Object
BidirectionalGraph<TVertex, TEdge>
DataSetGraph
Implements
IEdgeListAndIncidenceGraph<TVertex, TEdge>
IMutableBidirectionalGraph<TVertex, TEdge>
IMutableVertexAndEdgeListGraph<TVertex, TEdge>
IMutableVertexListGraph<TVertex, TEdge>
IMutableIncidenceGraph<TVertex, TEdge>
IMutableVertexAndEdgeSet<TVertex, TEdge>
IMutableVertexSet<TVertex>
IMutableEdgeListGraph<TVertex, TEdge>
IMutableGraph<TVertex, TEdge>
IBidirectionalGraph<TVertex, TEdge>
IVertexAndEdgeListGraph<TVertex, TEdge>
IVertexListGraph<TVertex, TEdge>
IEdgeListGraph<TVertex, TEdge>
IEdgeSet<TVertex, TEdge>
IVertexSet<TVertex>
IBidirectionalIncidenceGraph<TVertex, TEdge>
IIncidenceGraph<TVertex, TEdge>
IImplicitGraph<TVertex, TEdge>
IGraph<TVertex, TEdge>
IImplicitVertexSet<TVertex>
System.ICloneable
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: QuikGraph
Assembly: QuikGraph.dll
Syntax
[Serializable]
public class BidirectionalGraph<TVertex, TEdge> : IEdgeListAndIncidenceGraph<TVertex, TEdge>, IMutableBidirectionalGraph<TVertex, TEdge>, IMutableVertexAndEdgeListGraph<TVertex, TEdge>, IMutableVertexListGraph<TVertex, TEdge>, IMutableIncidenceGraph<TVertex, TEdge>, IMutableVertexAndEdgeSet<TVertex, TEdge>, IMutableVertexSet<TVertex>, IMutableEdgeListGraph<TVertex, TEdge>, IMutableGraph<TVertex, TEdge>, IBidirectionalGraph<TVertex, TEdge>, IVertexAndEdgeListGraph<TVertex, TEdge>, IVertexListGraph<TVertex, TEdge>, IEdgeListGraph<TVertex, TEdge>, IEdgeSet<TVertex, TEdge>, IVertexSet<TVertex>, IBidirectionalIncidenceGraph<TVertex, TEdge>, IIncidenceGraph<TVertex, TEdge>, IImplicitGraph<TVertex, TEdge>, IGraph<TVertex, TEdge>, IImplicitVertexSet<TVertex>, ICloneable where TEdge : IEdge<TVertex>
Type Parameters
Name Description
TVertex

Vertex type.

TEdge

Edge type

Remarks

It is efficient for sparse graph representation where out-edge and in-edges need to be enumerated. Requires twice as much memory as the AdjacencyGraph<TVertex, TEdge>.

Constructors

| Improve this Doc View Source

BidirectionalGraph()

Initializes a new instance of the BidirectionalGraph<TVertex, TEdge> class.

Declaration
public BidirectionalGraph()
| Improve this Doc View Source

BidirectionalGraph(BidirectionalGraph<TVertex, TEdge>)

Copy constructor that creates sufficiently deep copy of the graph.

Declaration
public BidirectionalGraph(BidirectionalGraph<TVertex, TEdge> other)
Parameters
Type Name Description
BidirectionalGraph<TVertex, TEdge> other

Graph to copy.

| Improve this Doc View Source

BidirectionalGraph(Boolean)

Initializes a new instance of the BidirectionalGraph<TVertex, TEdge> class.

Declaration
public BidirectionalGraph(bool allowParallelEdges)
Parameters
Type Name Description
System.Boolean allowParallelEdges

Indicates if parallel edges are allowed.

| Improve this Doc View Source

BidirectionalGraph(Boolean, Int32)

Initializes a new instance of the BidirectionalGraph<TVertex, TEdge> class.

Declaration
public BidirectionalGraph(bool allowParallelEdges, int capacity)
Parameters
Type Name Description
System.Boolean allowParallelEdges

Indicates if parallel edges are allowed.

System.Int32 capacity

Vertex capacity.

| Improve this Doc View Source

BidirectionalGraph(Boolean, Int32, Int32)

Initializes a new instance of the BidirectionalGraph<TVertex, TEdge> class.

Declaration
public BidirectionalGraph(bool allowParallelEdges, int vertexCapacity, int edgeCapacity)
Parameters
Type Name Description
System.Boolean allowParallelEdges

Indicates if parallel edges are allowed.

System.Int32 vertexCapacity

Vertex capacity.

System.Int32 edgeCapacity

Edge capacity.

Properties

| Improve this Doc View Source

AllowParallelEdges

Gets a value indicating if the graph allows parallel edges

Declaration
public bool AllowParallelEdges { get; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

EdgeCapacity

Gets or sets the edge capacity.

Declaration
public int EdgeCapacity { get; set; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

EdgeCount

Gets the edge count.

Declaration
public int EdgeCount { get; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

Edges

Gets the edges.

Declaration
public virtual IEnumerable<TEdge> Edges { get; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<TEdge>
| Improve this Doc View Source

EdgeType

Gives the type of edges.

Declaration
public Type EdgeType { get; }
Property Value
Type Description
System.Type
| Improve this Doc View Source

IsDirected

Gets a value indicating if the graph is directed

Declaration
public bool IsDirected { get; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

IsEdgesEmpty

Gets a value indicating whether there are no edges in this set. It is true if this edge set is empty, otherwise false.

Declaration
public bool IsEdgesEmpty { get; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

IsVerticesEmpty

Gets a value indicating whether there are no vertices in this set. It is true if this vertex set is empty, otherwise false.

Declaration
public bool IsVerticesEmpty { get; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

VertexCount

Gets the vertex count.

Declaration
public int VertexCount { get; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

VertexType

Gets the type of vertices.

Declaration
public Type VertexType { get; }
Property Value
Type Description
System.Type
| Improve this Doc View Source

Vertices

Gets the vertices.

Declaration
public virtual IEnumerable<TVertex> Vertices { get; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<TVertex>

Methods

| Improve this Doc View Source

AddEdge(TEdge)

Adds the edge to this graph.

Declaration
public virtual bool AddEdge(TEdge edge)
Parameters
Type Name Description
TEdge edge

An edge.

Returns
Type Description
System.Boolean

True if the edge was added, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

edge is null.

| Improve this Doc View Source

AddEdgeRange(IEnumerable<TEdge>)

Adds a set of edges to this graph.

Declaration
public int AddEdgeRange(IEnumerable<TEdge> edges)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<TEdge> edges

Edges to add.

Returns
Type Description
System.Int32

The number of edges successfully added to this graph.

Exceptions
Type Condition
System.ArgumentNullException

edges is null or at least one of them is null.

| Improve this Doc View Source

AddVertex(TVertex)

Adds a vertex to this set.

Declaration
public virtual bool AddVertex(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

Vertex to add.

Returns
Type Description
System.Boolean

True if the vertex was added, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

| Improve this Doc View Source

AddVertexRange(IEnumerable<TVertex>)

Adds given vertices to this set.

Declaration
public virtual int AddVertexRange(IEnumerable<TVertex> vertices)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<TVertex> vertices

Vertices to add.

Returns
Type Description
System.Int32

The number of vertex added.

Exceptions
Type Condition
System.ArgumentNullException

vertices is null or at least one of them is null.

| Improve this Doc View Source

AddVerticesAndEdge(TEdge)

Adds edge and its vertices to this graph.

Declaration
public virtual bool AddVerticesAndEdge(TEdge edge)
Parameters
Type Name Description
TEdge edge

The edge to add.

Returns
Type Description
System.Boolean

True if the edge was added, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

edge is null.

| Improve this Doc View Source

AddVerticesAndEdgeRange(IEnumerable<TEdge>)

Adds a set of edges (and it's vertices if necessary).

Declaration
public int AddVerticesAndEdgeRange(IEnumerable<TEdge> edges)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<TEdge> edges

Edges to add.

Returns
Type Description
System.Int32

The number of edges added.

Exceptions
Type Condition
System.ArgumentNullException

edges is null or at least one of them is null.

| Improve this Doc View Source

Clear()

Clears the vertex and edges.

Declaration
public void Clear()
| Improve this Doc View Source

ClearEdges(TVertex)

Clears in-edges and out-edges of the given vertex.

Declaration
public void ClearEdges(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

| Improve this Doc View Source

ClearInEdges(TVertex)

Clears in-edges of the given vertex.

Declaration
public void ClearInEdges(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

| Improve this Doc View Source

ClearOutEdges(TVertex)

Trims the out-edges of the given vertex

Declaration
public void ClearOutEdges(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

| Improve this Doc View Source

Clone()

Clones this graph.

Declaration
public BidirectionalGraph<TVertex, TEdge> Clone()
Returns
Type Description
BidirectionalGraph<TVertex, TEdge>

Cloned graph.

| Improve this Doc View Source

ContainsEdge(TVertex, TVertex)

Checks if this graph contains an edge that link source and target vertices.

Declaration
public bool ContainsEdge(TVertex source, TVertex target)
Parameters
Type Name Description
TVertex source

Source vertex.

TVertex target

Target vertex.

Returns
Type Description
System.Boolean

True if an edge exists, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

source is null.

System.ArgumentNullException

target is null.

| Improve this Doc View Source

ContainsEdge(TEdge)

Determines whether this set contains the specified edge.

Declaration
public bool ContainsEdge(TEdge edge)
Parameters
Type Name Description
TEdge edge

Edge to check.

Returns
Type Description
System.Boolean

True if the specified edge is contained in this set, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

edge is null.

| Improve this Doc View Source

ContainsVertex(TVertex)

Determines whether this set contains the specified vertex.

Declaration
public bool ContainsVertex(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

Vertex to check.

Returns
Type Description
System.Boolean

True if the specified vertex is contained in this set, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

| Improve this Doc View Source

Degree(TVertex)

Gets the degree of vertex, i.e. the sum of the out-degree and in-degree of vertex.

Declaration
public int Degree(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Returns
Type Description
System.Int32

The sum of OutDegree and InDegree of vertex.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

InDegree(TVertex)

Gets the number of in-edges of vertex.

Declaration
public int InDegree(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Returns
Type Description
System.Int32

The number of in-edges pointing towards vertex.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

InEdge(TVertex, Int32)

Gets the in-edge at location index.

Declaration
public TEdge InEdge(TVertex vertex, int index)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 index

The index.

Returns
Type Description
TEdge

The in-edge at position index.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

System.ArgumentOutOfRangeException

No vertex at index.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

InEdges(TVertex)

Gets the collection of in-edges of vertex.

Declaration
public IEnumerable<TEdge> InEdges(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Returns
Type Description
System.Collections.Generic.IEnumerable<TEdge>

The collection of in-edges of vertex.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

IsInEdgesEmpty(TVertex)

Determines whether vertex has no in-edges.

Declaration
public bool IsInEdgesEmpty(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Returns
Type Description
System.Boolean

True if vertex has no in-edges, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

IsOutEdgesEmpty(TVertex)

Determines whether there are out-edges associated to vertex.

Declaration
public bool IsOutEdgesEmpty(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Returns
Type Description
System.Boolean

True if vertex has no out-edges, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

MergeVertex(TVertex, EdgeFactory<TVertex, TEdge>)

Removes the given vertex and merges all its connection to other vertices.

Declaration
public void MergeVertex(TVertex vertex, EdgeFactory<TVertex, TEdge> edgeFactory)
Parameters
Type Name Description
TVertex vertex

The vertex.

EdgeFactory<TVertex, TEdge> edgeFactory

Factory method to create an edge.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

System.ArgumentNullException

edgeFactory is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

MergeVerticesIf(VertexPredicate<TVertex>, EdgeFactory<TVertex, TEdge>)

Removes vertices matching the given vertexPredicate and merges all their connections to other vertices.

Declaration
public void MergeVerticesIf(VertexPredicate<TVertex> vertexPredicate, EdgeFactory<TVertex, TEdge> edgeFactory)
Parameters
Type Name Description
VertexPredicate<TVertex> vertexPredicate

Predicate to match vertices.

EdgeFactory<TVertex, TEdge> edgeFactory

Factory method to create an edge.

Exceptions
Type Condition
System.ArgumentNullException

vertexPredicate is null.

System.ArgumentNullException

edgeFactory is null.

| Improve this Doc View Source

OnEdgeAdded(TEdge)

Called on each added edge.

Declaration
protected virtual void OnEdgeAdded(TEdge edge)
Parameters
Type Name Description
TEdge edge

Added edge.

| Improve this Doc View Source

OnEdgeRemoved(TEdge)

Called on each removed edge.

Declaration
protected virtual void OnEdgeRemoved(TEdge edge)
Parameters
Type Name Description
TEdge edge

Removed edge.

| Improve this Doc View Source

OnVertexAdded(TVertex)

Called on each added vertex.

Declaration
protected virtual void OnVertexAdded(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

Added vertex.

| Improve this Doc View Source

OnVertexRemoved(TVertex)

Called for each removed vertex.

Declaration
protected virtual void OnVertexRemoved(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

Removed vertex.

| Improve this Doc View Source

OutDegree(TVertex)

Gets the count of out-edges of vertex.

Declaration
public int OutDegree(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Returns
Type Description
System.Int32

The count of out-edges of vertex.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

OutEdge(TVertex, Int32)

Gets the out-edge of vertex at position index.

Declaration
public TEdge OutEdge(TVertex vertex, int index)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 index

The index.

Returns
Type Description
TEdge

The out-edge at position index.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

System.ArgumentOutOfRangeException

No vertex at index.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

OutEdges(TVertex)

Gets the out-edges of vertex.

Declaration
public IEnumerable<TEdge> OutEdges(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Returns
Type Description
System.Collections.Generic.IEnumerable<TEdge>

An enumeration of the out-edges of vertex.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

RemoveEdge(TEdge)

Removes the edge from this graph.

Declaration
public virtual bool RemoveEdge(TEdge edge)
Parameters
Type Name Description
TEdge edge

Edge to remove.

Returns
Type Description
System.Boolean

True if the edge was successfully removed, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

edge is null.

| Improve this Doc View Source

RemoveEdgeIf(EdgePredicate<TVertex, TEdge>)

Removes all edges that match the given predicate.

Declaration
public int RemoveEdgeIf(EdgePredicate<TVertex, TEdge> predicate)
Parameters
Type Name Description
EdgePredicate<TVertex, TEdge> predicate

Predicate to check if an edge should be removed.

Returns
Type Description
System.Int32

The number of edges removed.

Exceptions
Type Condition
System.ArgumentNullException

predicate is null.

| Improve this Doc View Source

RemoveInEdgeIf(TVertex, EdgePredicate<TVertex, TEdge>)

Removes in-edges of the given vertex that match predicate predicate.

Declaration
public int RemoveInEdgeIf(TVertex vertex, EdgePredicate<TVertex, TEdge> predicate)
Parameters
Type Name Description
TVertex vertex

The vertex.

EdgePredicate<TVertex, TEdge> predicate

Edge predicate.

Returns
Type Description
System.Int32

Number of edges removed.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

System.ArgumentNullException

predicate is null.

| Improve this Doc View Source

RemoveOutEdgeIf(TVertex, EdgePredicate<TVertex, TEdge>)

Removes all out-edges of the vertex where the predicate is evaluated to true.

Declaration
public int RemoveOutEdgeIf(TVertex vertex, EdgePredicate<TVertex, TEdge> predicate)
Parameters
Type Name Description
TVertex vertex

The vertex.

EdgePredicate<TVertex, TEdge> predicate

Predicate to remove edges.

Returns
Type Description
System.Int32

The number of removed edges.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

System.ArgumentNullException

predicate is null.

| Improve this Doc View Source

RemoveVertex(TVertex)

Removes the given vertex from this set.

Declaration
public virtual bool RemoveVertex(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

Vertex to remove.

Returns
Type Description
System.Boolean

True if the vertex was removed, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

| Improve this Doc View Source

RemoveVertexIf(VertexPredicate<TVertex>)

Removes all vertices matching the given predicate.

Declaration
public int RemoveVertexIf(VertexPredicate<TVertex> predicate)
Parameters
Type Name Description
VertexPredicate<TVertex> predicate

Predicate to check on each vertex.

Returns
Type Description
System.Int32

The number of vertex removed.

Exceptions
Type Condition
System.ArgumentNullException

predicate is null.

| Improve this Doc View Source

TrimEdgeExcess()

Trims excess storage allocated for edges.

Declaration
public void TrimEdgeExcess()
| Improve this Doc View Source

TryGetEdge(TVertex, TVertex, out TEdge)

Tries to get the edge that link source and target vertices.

Declaration
public bool TryGetEdge(TVertex source, TVertex target, out TEdge edge)
Parameters
Type Name Description
TVertex source

Source vertex.

TVertex target

Target vertex.

TEdge edge

Edge found, otherwise null.

Returns
Type Description
System.Boolean

True if an edge was found, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

source is null.

System.ArgumentNullException

target is null.

| Improve this Doc View Source

TryGetEdges(TVertex, TVertex, out IEnumerable<TEdge>)

Tries to get edges that link source and target vertices.

Declaration
public bool TryGetEdges(TVertex source, TVertex target, out IEnumerable<TEdge> edges)
Parameters
Type Name Description
TVertex source

Source vertex.

TVertex target

Target vertex.

System.Collections.Generic.IEnumerable<TEdge> edges

Edges found, otherwise null.

Returns
Type Description
System.Boolean

True if at least an edge was found, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

source is null.

System.ArgumentNullException

target is null.

| Improve this Doc View Source

TryGetInEdges(TVertex, out IEnumerable<TEdge>)

Tries to get the in-edges of vertex.

Declaration
public bool TryGetInEdges(TVertex vertex, out IEnumerable<TEdge> edges)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Collections.Generic.IEnumerable<TEdge> edges

In-edges.

Returns
Type Description
System.Boolean

True if vertex was found or/and in-edges were found, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

| Improve this Doc View Source

TryGetOutEdges(TVertex, out IEnumerable<TEdge>)

Tries to get the out-edges of vertex.

Declaration
public bool TryGetOutEdges(TVertex vertex, out IEnumerable<TEdge> edges)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Collections.Generic.IEnumerable<TEdge> edges

Out-edges.

Returns
Type Description
System.Boolean

True if vertex was found or/and out-edges were found, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

Events

| Improve this Doc View Source

EdgeAdded

Fired when an edge is added to this graph.

Declaration
public event EdgeAction<TVertex, TEdge> EdgeAdded
Event Type
Type Description
EdgeAction<TVertex, TEdge>
| Improve this Doc View Source

EdgeRemoved

Fired when an edge has been removed from this graph.

Declaration
public event EdgeAction<TVertex, TEdge> EdgeRemoved
Event Type
Type Description
EdgeAction<TVertex, TEdge>
| Improve this Doc View Source

VertexAdded

Fired when a vertex is added to this set.

Declaration
public event VertexAction<TVertex> VertexAdded
Event Type
Type Description
VertexAction<TVertex>
| Improve this Doc View Source

VertexRemoved

Fired when a vertex is removed from this set.

Declaration
public event VertexAction<TVertex> VertexRemoved
Event Type
Type Description
VertexAction<TVertex>

Explicit Interface Implementations

| Improve this Doc View Source

ICloneable.Clone()

Declaration
object ICloneable.Clone()
Returns
Type Description
System.Object

Implements

IEdgeListAndIncidenceGraph<TVertex, TEdge>
IMutableBidirectionalGraph<TVertex, TEdge>
IMutableVertexAndEdgeListGraph<TVertex, TEdge>
IMutableVertexListGraph<TVertex, TEdge>
IMutableIncidenceGraph<TVertex, TEdge>
IMutableVertexAndEdgeSet<TVertex, TEdge>
IMutableVertexSet<TVertex>
IMutableEdgeListGraph<TVertex, TEdge>
IMutableGraph<TVertex, TEdge>
IBidirectionalGraph<TVertex, TEdge>
IVertexAndEdgeListGraph<TVertex, TEdge>
IVertexListGraph<TVertex, TEdge>
IEdgeListGraph<TVertex, TEdge>
IEdgeSet<TVertex, TEdge>
IVertexSet<TVertex>
IBidirectionalIncidenceGraph<TVertex, TEdge>
IIncidenceGraph<TVertex, TEdge>
IImplicitGraph<TVertex, TEdge>
IGraph<TVertex, TEdge>
IImplicitVertexSet<TVertex>
System.ICloneable

Extension Methods

DirectedGraphMLExtensions.ToDirectedGraphML<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>)
DirectedGraphMLExtensions.ToDirectedGraphML<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>, Func<TVertex, GraphColor>)
DirectedGraphMLExtensions.ToDirectedGraphML<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>)
DirectedGraphMLExtensions.ToDirectedGraphML<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>, Action<TVertex, DirectedGraphNode>, Action<TEdge, DirectedGraphLink>)
DirectedGraphMLExtensions.OpenAsDGML<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>, String)
GraphMLExtensions.SerializeToGraphML<TVertex, TEdge, TGraph>(TGraph, String)
GraphMLExtensions.SerializeToGraphML<TVertex, TEdge, TGraph>(TGraph, String, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>)
GraphMLExtensions.SerializeToGraphML<TVertex, TEdge, TGraph>(TGraph, XmlWriter)
GraphMLExtensions.SerializeToGraphML<TVertex, TEdge, TGraph>(TGraph, XmlWriter, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>)
GraphMLExtensions.DeserializeFromGraphML<TVertex, TEdge, TGraph>(TGraph, XmlReader, IdentifiableVertexFactory<TVertex>, IdentifiableEdgeFactory<TVertex, TEdge>)
GraphMLExtensions.DeserializeFromGraphML<TVertex, TEdge, TGraph>(TGraph, TextReader, IdentifiableVertexFactory<TVertex>, IdentifiableEdgeFactory<TVertex, TEdge>)
GraphMLExtensions.DeserializeFromGraphML<TVertex, TEdge, TGraph>(TGraph, String, IdentifiableVertexFactory<TVertex>, IdentifiableEdgeFactory<TVertex, TEdge>)
GraphMLExtensions.DeserializeAndValidateFromGraphML<TVertex, TEdge, TGraph>(TGraph, TextReader, IdentifiableVertexFactory<TVertex>, IdentifiableEdgeFactory<TVertex, TEdge>)
SerializationExtensions.SerializeToBinary<TVertex, TEdge>(IGraph<TVertex, TEdge>, Stream)
SerializationExtensions.SerializeToXml<TVertex, TEdge, TGraph>(TGraph, XmlWriter, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>, String, String, String, String)
SerializationExtensions.SerializeToXml<TVertex, TEdge, TGraph>(TGraph, XmlWriter, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>, String, String, String, String, Action<XmlWriter, TGraph>, Action<XmlWriter, TVertex>, Action<XmlWriter, TEdge>)
GraphExtensions.ToArrayAdjacencyGraph<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>)
GraphExtensions.ToBidirectionalGraph<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>)
GraphExtensions.ToArrayBidirectionalGraph<TVertex, TEdge>(IBidirectionalGraph<TVertex, TEdge>)
GraphExtensions.ToCompressedRowGraph<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>)
AlgorithmExtensions.GetVertexIdentity<TVertex>(IVertexSet<TVertex>)
AlgorithmExtensions.GetEdgeIdentity<TVertex, TEdge>(IEdgeSet<TVertex, TEdge>)
AlgorithmExtensions.TreeBreadthFirstSearch<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>, TVertex)
AlgorithmExtensions.TreeDepthFirstSearch<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>, TVertex)
AlgorithmExtensions.TreeCyclePoppingRandom<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>, TVertex)
AlgorithmExtensions.TreeCyclePoppingRandom<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>, TVertex, IMarkovEdgeChain<TVertex, TEdge>)
AlgorithmExtensions.ShortestPathsDijkstra<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>, Func<TEdge, Double>, TVertex)
AlgorithmExtensions.ShortestPathsAStar<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>, Func<TEdge, Double>, Func<TVertex, Double>, TVertex)
AlgorithmExtensions.ShortestPathsBellmanFord<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>, Func<TEdge, Double>, TVertex, out Boolean)
AlgorithmExtensions.ShortestPathsDag<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>, Func<TEdge, Double>, TVertex)
AlgorithmExtensions.RankedShortestPathHoffmanPavley<TVertex, TEdge>(IBidirectionalGraph<TVertex, TEdge>, Func<TEdge, Double>, TVertex, TVertex, Int32)
AlgorithmExtensions.Sinks<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>)
AlgorithmExtensions.Roots<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>)
AlgorithmExtensions.Roots<TVertex, TEdge>(IBidirectionalGraph<TVertex, TEdge>)
AlgorithmExtensions.IsolatedVertices<TVertex, TEdge>(IBidirectionalGraph<TVertex, TEdge>)
AlgorithmExtensions.TopologicalSort<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>)
AlgorithmExtensions.SourceFirstTopologicalSort<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>)
AlgorithmExtensions.SourceFirstBidirectionalTopologicalSort<TVertex, TEdge>(IBidirectionalGraph<TVertex, TEdge>)
AlgorithmExtensions.SourceFirstBidirectionalTopologicalSort<TVertex, TEdge>(IBidirectionalGraph<TVertex, TEdge>, TopologicalSortDirection)
AlgorithmExtensions.IncrementalConnectedComponents<TVertex, TEdge>(IMutableVertexAndEdgeSet<TVertex, TEdge>, out Func<KeyValuePair<Int32, IDictionary<TVertex, Int32>>>)
AlgorithmExtensions.StronglyConnectedComponents<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>, IDictionary<TVertex, Int32>)
AlgorithmExtensions.WeaklyConnectedComponents<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>, IDictionary<TVertex, Int32>)
AlgorithmExtensions.CondensateStronglyConnected<TVertex, TEdge, TGraph>(IVertexAndEdgeListGraph<TVertex, TEdge>)
AlgorithmExtensions.CondensateWeaklyConnected<TVertex, TEdge, TGraph>(IVertexAndEdgeListGraph<TVertex, TEdge>)
AlgorithmExtensions.CondensateEdges<TVertex, TEdge>(IBidirectionalGraph<TVertex, TEdge>, VertexPredicate<TVertex>)
AlgorithmExtensions.OddVertices<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>)
AlgorithmExtensions.IsDirectedAcyclicGraph<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>)
AlgorithmExtensions.OfflineLeastCommonAncestor<TVertex, TEdge>(IVertexListGraph<TVertex, TEdge>, TVertex, IEnumerable<SEquatableEdge<TVertex>>)
AlgorithmExtensions.MaximumFlow<TVertex, TEdge>(IMutableVertexAndEdgeListGraph<TVertex, TEdge>, Func<TEdge, Double>, TVertex, TVertex, out TryFunc<TVertex, TEdge>, EdgeFactory<TVertex, TEdge>, ReversedEdgeAugmentorAlgorithm<TVertex, TEdge>)
AlgorithmExtensions.ComputeTransitiveReduction<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>)
AlgorithmExtensions.ComputeTransitiveClosure<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>, Func<TVertex, TVertex, TEdge>)
AlgorithmExtensions.Clone<TVertex, TEdge>(IVertexAndEdgeListGraph<TVertex, TEdge>, Func<TVertex, TVertex>, Func<TEdge, TVertex, TVertex, TEdge>, IMutableVertexAndEdgeSet<TVertex, TEdge>)
GraphvizExtensions.ToGraphviz<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>)
GraphvizExtensions.ToGraphviz<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>, Action<GraphvizAlgorithm<TVertex, TEdge>>)
GraphvizExtensions.ToSvg<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>)
GraphvizExtensions.ToSvg<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>, Action<GraphvizAlgorithm<TVertex, TEdge>>)
MsaglGraphExtensions.CreateMsaglPopulator<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>)
MsaglGraphExtensions.CreateMsaglPopulator<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>, String, IFormatProvider)
MsaglGraphExtensions.CreateMsaglPopulator<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>, VertexIdentity<TVertex>)
MsaglGraphExtensions.ToMsaglGraph<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>, MsaglVertexNodeEventHandler<TVertex>, MsaglEdgeEventHandler<TVertex, TEdge>)
MsaglGraphExtensions.ToMsaglGraph<TVertex, TEdge>(IEdgeListGraph<TVertex, TEdge>, VertexIdentity<TVertex>, MsaglVertexNodeEventHandler<TVertex>, MsaglEdgeEventHandler<TVertex, TEdge>)
  • Improve this Doc
  • View Source
In This Article
Back to top QuikGraph