Represents a "topological sort" of a directed acyclic graph, mapping each vertex to its position in topological order. NOTE that it would also be possible to get the same effect using the Kosaraju algorithm (see Kosaraju.stronglyConnectedComponents) especially if you're not sure that the directed graph is in fact acyclic. If you have significant doubt, it may be better to use Kosaraju instead. A DAG will result in a topologically sorted set of SCCs, each of which holds only one vertex.
Type parameters
V
the type representing a vertex in the graph.
Value parameters
map
a mapping of vertices of type V to their position (Int) in topological order.
Adds a new mapping of a vertex to its corresponding traversal result to the existing map, returning a new VertexTraversalResult instance with the updated mapping.
Adds a new mapping of a vertex to its corresponding traversal result to the existing map, returning a new VertexTraversalResult instance with the updated mapping.
Value parameters
t
a tuple where the first element is a vertex of type V, and the second element is its associated traversal result of type T.
Attributes
Returns
a new VertexTraversalResult instance of type VertexTraversalResult[V, E, T] containing the updated map.
Traverses the specified vertex in the graph and retrieves the associated traversal result from the underlying map. If the vertex does not exist, a NoSuchElementException is thrown.
Traverses the specified vertex in the graph and retrieves the associated traversal result from the underlying map. If the vertex does not exist, a NoSuchElementException is thrown.
Value parameters
v
the vertex to be traversed and looked up in the map.
Attributes
Returns
the traversal result of type T associated with the provided vertex.