BidirectedGraph<T extends Object> class

Graph with bidirected edges represented by a directed graph with symmetric edges.

Inheritance
Available extensions

Constructors

BidirectedGraph(Map<T, Set<T>> edges, {Comparator<T>? comparator})
BidirectedGraph.from(DirectedGraph<T> graph)
Constructs a bidirected graph from a directed graph.
BidirectedGraph.transitiveClosure(DirectedGraph<T> graph)
Constructs the bidirected transitive closure of a graph.
factory

Properties

comparator ↔ Comparator<T>?
Returns the current comparator. This could be:
getter/setter pairinherited
crawler → GraphCrawler<T>
The graph crawler of this graph.
latefinalinherited
cycleVertex → T?
Returns the first vertex detected that forms part of a cycle if the graph is cyclic and null otherwise.
no setterinherited
data → Map<T, Set<T>>
Returns a copy of the graph edges as a map of type Map<T, Set<T>>.
no setterinherited
first → T
The first element.
no setterinherited
hasComparator → bool
Returns true if comparator is not null.
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
inDegreeMap → Map<T, int>
Returns a mapping between vertex and number of incoming connections.
no setterinherited
inverseComparator → Comparator<T>?
Returns the inverse of comparator. Returns null if the graph has no comparator (that was set by the user of provided as constructor parameter).
no setterinherited
isAcyclic → bool
Returns true if the graph is a directed acyclic graph.
no setterinherited
isEmpty → bool
Whether this collection has no elements.
no setterinherited
isNotEmpty → bool
Whether this collection has at least one element.
no setterinherited
iterator → Iterator<T>
A new Iterator that allows iterating the elements of this Iterable.
no setterinherited
last → T
The last element.
no setterinherited
length → int
Returns the number of graph vertices. Classes extending DirectedGraphBase should make sure that the length is obtained from an EfficientLengthIterable.
no setterinherited
outDegreeMap → Map<T, int>
Returns a mapping between vertex and number of outgoing connections.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
single → T
Checks that this iterable has only one element, and returns that element.
no setterinherited
sortedVertices → Set<T>
Returns an set containing all vertices sorted using comparator. If comparator is null this getter returns the original unsorted set of vertices.
no setterinherited
vertices → Iterable<T>
Returns a list of all vertices.
no setterinherited
wait → Future<List<T>>

Available on Iterable<Future<T>>, provided by the FutureIterable extension

Waits for futures in parallel.
no setter

Methods

addEdge(T vertex, T connectedVertex) → void
Adds a new edge pointing from vertex to connectedVertex.
override
addEdges(T vertex, Set<T> connectedVertices) → void
Adds edges (connections) pointing from vertex to connectedVertices.
override
any(bool test(T element)) → bool
Checks whether any element of this iterable satisfies test.
inherited
asNameMap() → Map<String, T>

Available on Iterable<T>, provided by the EnumByName extension

Creates a map from the names of enum values to the values.
byName(String name) → T

Available on Iterable<T>, provided by the EnumByName extension

Finds the enum value in this list with name name.
cast<R>() → Iterable<R>
A view of this iterable as an iterable of R instances.
inherited
clear() → void
Removes all graph vertices. After this method returns the graph will be empty.
inherited
clearEdges() → void
Removes all graph edges (connections between vertices). The graph vertices are not removed. To remove all vertices and (implicitly) all graph edges use the method clear.
inherited
contains(Object? element) → bool
Whether the collection contains an element equal to element.
inherited
cycle() → List<T>
Returns the first cycle detected or an empty list if the graph is acyclic.
inherited
edgeExists(T vertex, T connectedVertex) → bool
Returns true if there is an edge pointing from vertex to connectedVertex. Returns false otherwise.
inherited
edges(T vertex) → Set<T>
Returns the vertices connected to vertex. Note: Mathematically, an edge is an ordered pair (vertex, connected-vertex).
inherited
elementAt(int index) → T
Returns the indexth element.
inherited
every(bool test(T element)) → bool
Checks whether every element of this iterable satisfies test.
inherited
expand<T>(Iterable<T> toElements(T element)) → Iterable<T>
Expands each element of this Iterable into zero or more elements.
inherited
firstWhere(bool test(T element), {T orElse()?}) → T
The first element that satisfies the given predicate test.
inherited
fold<T>(T initialValue, T combine(T previousValue, T element)) → T
Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
inherited
followedBy(Iterable<T> other) → Iterable<T>
Creates the lazy concatenation of this iterable and other.
inherited
forEach(void action(T element)) → void
Invokes action on each element of this iterable in iteration order.
inherited
inDegree(T vertex) → int?
Returns the number of incoming directed edges for vertex.
inherited
join([String separator = ""]) → String
Converts each element to a String and concatenates the strings.
inherited
lastWhere(bool test(T element), {T orElse()?}) → T
The last element that satisfies the given predicate test.
inherited
localSources() → List<Set<T>>?
Returns a list of type List<Set<T>> if the graph is acyclic or null otherwise.
inherited
map<T>(T toElement(T e)) → Iterable<T>
The current elements of this iterable modified by toElement.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
outDegree(T vertex) → int?
Returns the number of outgoing directed edges for vertex.
inherited
path(T start, T target) → List<T>
Returns the shortest detected path from start to target including cycles.
inherited
paths(T start, T target) → List<List<T>>
Returns all paths from start to target including cycles.
inherited
quasiTopologicalOrdering(Set<T> vertices, {bool sorted = false}) → Set<T>?
Returns a set containing the elements of vertices in quasi-topological order.
inherited
reachableVertices(T start) → Set<T>
Returns a set containing all vertices that are reachable from vertex start.
inherited
reduce(T combine(T value, T element)) → T
Reduces a collection to a single value by iteratively combining elements of the collection using the provided function.
inherited
remove(T vertex) → void
Completely removes vertex from the graph, including outgoing and incoming edges.
override
removeEdge(T vertex, T connectedVertex) → void
Removes the edge pointing from vertex to connectedVertex. Does not remove the vertices.
inherited
removeEdges(T vertex, Set<T> connectedVertices) → void
Removes edges (connections) pointing from vertex to connectedVertices.
override
removeIncomingEdges(T vertex) → void
Removes edges ending at vertex from the graph.
override
reverseQuasiTopologicalOrdering(Set<T> vertices, {bool sorted = false}) → Set<T>?
Returns a set containing the elements of vertices in reverse quasi topological order if there is no mutual connection between any two elements of vertices.
inherited
reverseTopologicalOrdering({bool sorted = false}) → Set<T>?
Returns an ordered set of all vertices in topological order.
inherited
shortestPath(T start, T target) → List<T>
Returns the shortest path from the vertex start to the vertex target.
inherited
shortestPaths(T start) → Map<T, Iterable<T>>
Returns a map containing the shortest paths from start to each reachable vertex. The map keys represent the set of vertices reachable from start.
inherited
singleWhere(bool test(T element), {T orElse()?}) → T
The single element that satisfies test.
inherited
skip(int count) → Iterable<T>
Creates an Iterable that provides all but the first count elements.
inherited
skipWhile(bool test(T element)) → Iterable<T>
Creates an Iterable that skips leading elements while test is satisfied.
inherited
sort() → void
Sorts the graph vertices using comparator and then calls sortEdges.
inherited
sortEdges() → void
Sorts the neighbouring vertices of each vertex using comparator.
inherited
stronglyConnectedComponents({bool sorted = false, Comparator<T>? comparator}) → List<Set<T>>
Returns a list of strongly connected components (SCC). The vertices are sorted if sorted is set to true and a comparator is provided. The graph comparator is used as a fallback.
inherited
take(int count) → Iterable<T>
Creates a lazy iterable of the count first elements of this iterable.
inherited
takeWhile(bool test(T element)) → Iterable<T>
Creates a lazy iterable of the leading elements satisfying test.
inherited
toList({bool growable = true}) → List<T>
Creates a List containing the elements of this Iterable.
inherited
topologicalOrdering({bool sorted = false}) → Set<T>?
Returns an ordered set of all vertices in topological order.
inherited
toSet() → Set<T>
Creates a Set containing the same elements as this iterable.
inherited
toString() → String
Returns a String representation of the graph.
inherited
updateCache() → void
Marks cached variables as stale. This method is called every time vertices or edges are added or removed from the graph.
inherited
vertexExists(T vertex) → bool
Returns true if vertex is a graph vertex. Returns false otherwise.
inherited
where(bool test(T element)) → Iterable<T>
Creates a new lazy Iterable with all elements that satisfy the predicate test.
inherited
whereType<T>() → Iterable<R>
Creates a new lazy Iterable with all elements that have type T.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited