Finding the biconnected components of a graph

## Value

A named list with three components:

- no
Numeric scalar, an integer giving the number of biconnected components in the graph.

- tree_edges
The components themselves, a list of numeric vectors. Each vector is a set of edge ids giving the edges in a biconnected component. These edges define a spanning tree of the component.

- component_edges
A list of numeric vectors. It gives all edges in the components.

- components
A list of numeric vectors, the vertices of the components.

- articulation_points
The articulation points of the graph. See

`articulation_points()`

.

## Details

A graph is biconnected if the removal of any single vertex (and its adjacent edges) does not disconnect it.

A biconnected component of a graph is a maximal biconnected subgraph of it. The biconnected components of a graph can be given by the partition of its edges: every edge is a member of exactly one biconnected component. Note that this is not true for vertices: the same vertex can be part of many biconnected components.

## See also

`articulation_points()`

, `components()`

,
`is_connected()`

, `vertex_connectivity()`

Connected components
`articulation_points()`

,
`component_distribution()`

,
`decompose()`

## Author

Gabor Csardi csardi.gabor@gmail.com

## Examples

```
g <- disjoint_union(make_full_graph(5), make_full_graph(5))
clu <- components(g)$membership
g <- add_edges(g, c(which(clu == 1), which(clu == 2)))
bc <- biconnected_components(g)
```