I have a question concerning the public UndirectedGraph<V,E> getBlock(V vertex) method.
The documentation says
Returns the vertex if vertex is a cutpoint, and otherwise
returns the block (biconnected component) containing the vertex.
But the example given in the introductory section of the
BlockCutpointGraph class clarifies that the a vertex can be part of
more than one block
I don't know how it could happen, but cutpoint is one of the very few
concepts in graph theory that have only one meaning. A cutpoint is indeed in
more than one block (x is a cutpoint iff x is in more than one block), but
non-cutpoints are in precisely one block.
So getBlock(x) returns x if x is a cutpoint and the unique block that
contains x, otherwise.