Class BiConnectedComponentsAlgoHopcroftTarjan

java.lang.Object
com.jgalgo.alg.connect.BiConnectedComponentsAlgoAbstract
com.jgalgo.alg.connect.BiConnectedComponentsAlgoHopcroftTarjan
All Implemented Interfaces:
BiConnectedComponentsAlgo

public class BiConnectedComponentsAlgoHopcroftTarjan extends BiConnectedComponentsAlgoAbstract
Hopcroft-Tarjan algorithm for bi-connected components.

The algorithm performs a DFS and look for edges from vertices with greater depth to vertices with lower depth. Each such edge indicate there are two separates paths between the edge endpoints: one using the DFS tree, and the other using the edge itself. If there are two disjoint paths between a pair of vertices, they must be in the same bi-connected component, as the removal of any single vertex will not disconnect them.

The algorithm runs in linear time and space.

Based on 'Algorithm 447: efficient algorithms for graph manipulation' by Hopcroft, J. and Tarjan, R. 1973.

Author:
Barak Ugav