Published on *Computer Science Department at Princeton University* (https://www.cs.princeton.edu)

We consider the twin problems of maintaining the bridge-connected components and the biconnected components of a dynamic undirected graph. The allowed changes to the graph are vertex and edge insertions. We give an algorithm for each problem. With simple data structures, each algorithm runs in

O(n log n + m) time, where n is the number of vertices and m is the number of operations. We develop a modified version of the dynamic trees of Sleator and Tarjan that is suitable for efficient recursive algorithms, and use it to reduce the running time of the algorithms for both problems to O(m alpha(m,n)),

where alpha is a functional inverse of Ackermann's function. This time bound is optimal. All of the algorithms use O(n) space.

**Links**

[1] https://www.cs.princeton.edu/research/techreps/author/589

[2] https://www.cs.princeton.edu/research/techreps/author/384

[3] ftp://ftp.cs.princeton.edu/techreports/1989/228.pdf