/// <inheritdoc /> public bool TryGetInEdges(TVertex vertex, out IEnumerable <SReversedEdge <TVertex, TEdge> > edges) { if (OriginalGraph.TryGetOutEdges(vertex, out IEnumerable <TEdge> outEdges)) { edges = EdgeExtensions.ReverseEdges <TVertex, TEdge>(outEdges); return(true); } edges = null; return(false); }
/// <summary> /// Initializes a new instance of the <see cref="UndirectedGraph{TVertex,TEdge}"/> class. /// </summary> /// <remarks>Gets the best edge equality comparer.</remarks> /// <param name="allowParallelEdges">Indicates if parallel edges are allowed.</param> public UndirectedGraph(bool allowParallelEdges) : this(allowParallelEdges, EdgeExtensions.GetUndirectedVertexEquality <TVertex, TEdge>()) { AllowParallelEdges = allowParallelEdges; }
/// <inheritdoc /> public IEnumerable <SReversedEdge <TVertex, TEdge> > InEdges(TVertex vertex) { return(EdgeExtensions.ReverseEdges <TVertex, TEdge>(OriginalGraph.OutEdges(vertex))); }