Show / Hide Table of Contents

Interface ITermBidirectionalGraph<TVertex, TEdge>

A directed graph with vertices of type TVertex and terminal edges of type TEdge, that is efficient to traverse both in and out edges.

Inherited Members
IEdgeSet<TVertex, TEdge>.IsEdgesEmpty
IEdgeSet<TVertex, TEdge>.EdgeCount
IEdgeSet<TVertex, TEdge>.Edges
IEdgeSet<TVertex, TEdge>.ContainsEdge(TEdge)
IVertexSet<TVertex>.IsVerticesEmpty
IVertexSet<TVertex>.VertexCount
IVertexSet<TVertex>.Vertices
IBidirectionalIncidenceGraph<TVertex, TEdge>.IsInEdgesEmpty(TVertex)
IBidirectionalIncidenceGraph<TVertex, TEdge>.InDegree(TVertex)
IBidirectionalIncidenceGraph<TVertex, TEdge>.InEdges(TVertex)
IBidirectionalIncidenceGraph<TVertex, TEdge>.TryGetInEdges(TVertex, IEnumerable<TEdge>)
IBidirectionalIncidenceGraph<TVertex, TEdge>.InEdge(TVertex, Int32)
IBidirectionalIncidenceGraph<TVertex, TEdge>.Degree(TVertex)
IIncidenceGraph<TVertex, TEdge>.ContainsEdge(TVertex, TVertex)
IIncidenceGraph<TVertex, TEdge>.TryGetEdge(TVertex, TVertex, TEdge)
IIncidenceGraph<TVertex, TEdge>.TryGetEdges(TVertex, TVertex, IEnumerable<TEdge>)
IImplicitGraph<TVertex, TEdge>.IsOutEdgesEmpty(TVertex)
IImplicitGraph<TVertex, TEdge>.OutDegree(TVertex)
IImplicitGraph<TVertex, TEdge>.OutEdges(TVertex)
IImplicitGraph<TVertex, TEdge>.TryGetOutEdges(TVertex, IEnumerable<TEdge>)
IImplicitGraph<TVertex, TEdge>.OutEdge(TVertex, Int32)
IGraph<TVertex, TEdge>.IsDirected
IGraph<TVertex, TEdge>.AllowParallelEdges
IImplicitVertexSet<TVertex>.ContainsVertex(TVertex)
Namespace: QuikGraph
Assembly: QuikGraph.dll
Syntax
public interface ITermBidirectionalGraph<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> where TEdge : ITermEdge<TVertex>
Type Parameters
Name Description
TVertex

Vertex type.

TEdge

Edge type.

Methods

| Improve this Doc View Source

InDegreeAt(TVertex, Int32)

Gets the vertex in-degree for the requested terminal.

Declaration
int InDegreeAt(TVertex vertex, int terminal)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 terminal

In terminal index.

Returns
Type Description
System.Int32

The vertex in-degree on terminal terminal.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

InEdgesAt(TVertex, Int32)

Gets the vertex in-edges for the requested terminal.

Declaration
IEnumerable<TEdge> InEdgesAt(TVertex vertex, int terminal)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 terminal

In terminal index.

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

The vertex in-edges on terminal terminal.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

InTerminalCount(TVertex)

Gets the number of in terminals on the given vertex.

Declaration
int InTerminalCount(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Returns
Type Description
System.Int32

Number of in terminals.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

IsInEdgesEmptyAt(TVertex, Int32)

Checks if the requested in terminal is empty or not for the given vertex.

Declaration
bool IsInEdgesEmptyAt(TVertex vertex, int terminal)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 terminal

In terminal index.

Returns
Type Description
System.Boolean

True if the in terminal is empty, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

IsOutEdgesEmptyAt(TVertex, Int32)

Checks if the requested out terminal is empty or not for the given vertex.

Declaration
bool IsOutEdgesEmptyAt(TVertex vertex, int terminal)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 terminal

Out terminal index.

Returns
Type Description
System.Boolean

True if the out terminal is empty, false otherwise.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

OutDegreeAt(TVertex, Int32)

Gets the vertex out-degree for the requested terminal.

Declaration
int OutDegreeAt(TVertex vertex, int terminal)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 terminal

Out terminal index.

Returns
Type Description
System.Int32

The vertex out-degree on terminal terminal.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

OutEdgesAt(TVertex, Int32)

Gets the vertex out edges for the requested terminal.

Declaration
IEnumerable<TEdge> OutEdgesAt(TVertex vertex, int terminal)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 terminal

Out terminal index.

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

The vertex out-edges on terminal terminal.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

OutTerminalCount(TVertex)

Gets the number of out terminals on the given vertex.

Declaration
int OutTerminalCount(TVertex vertex)
Parameters
Type Name Description
TVertex vertex

The vertex.

Returns
Type Description
System.Int32

Number of out terminals.

Exceptions
Type Condition
System.ArgumentNullException

vertex is null.

VertexNotFoundException

vertex is not part of the graph.

| Improve this Doc View Source

TryGetInEdgesAt(TVertex, Int32, out IEnumerable<TEdge>)

Tries to get the vertex in-edges for the requested terminal.

Declaration
bool TryGetInEdgesAt(TVertex vertex, int terminal, out IEnumerable<TEdge> edges)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 terminal

Out terminal index.

System.Collections.Generic.IEnumerable<TEdge> edges

In-edges found, otherwise null.

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

TryGetOutEdgesAt(TVertex, Int32, out IEnumerable<TEdge>)

Tries to get the vertex out-edges for the requested terminal.

Declaration
bool TryGetOutEdgesAt(TVertex vertex, int terminal, out IEnumerable<TEdge> edges)
Parameters
Type Name Description
TVertex vertex

The vertex.

System.Int32 terminal

Out terminal index.

System.Collections.Generic.IEnumerable<TEdge> edges

Out-edges found, otherwise null.

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.

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.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.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