We present algorithms for maintaining the biconnected components of a planar graph undergoing repeated dynamic modi cations, such as insertions and deletions of edges and vertices. We show how to test at any time whether two vertices belong to the same biconnected component, and how to insert and delete an edge in O(n 2=3 ) time in the worst case, where n is the number of vertices in the graph. The data structure supports also insertions of new vertices and deletions of disconnected vertices in the same time bounds. This is the rst sublinear-time algorithm known for this problem.
We note that if a tree is stored as a dynamic tree, the midpoint of a path in the tree may be found in O(log n) time. The amortized update time of this algorithm is O(k log 3 n). The analysis and proof of correctness are omitted here. Given a graph with weights between 1 and U , a 1+-approximation of the minimum spanning tree is a spanning tree whose weight is within a factor of 1+ of the weight of the optimal. The problem of maintaining a 1+ approximation is easily seen to be re-ducible to the k-weight MST problem, where a weight has rank i if it falls in the interval [(1+) i ; (1+) i+1) for i = 0;1; ::; blog U= log(1 +)c. This yields an algorithm with amortized cost O(log 3 n(log U)=). The bipartite graph problem is to answer the query \Is G bipartite?" in O(1) time, where G is a dynamic graph. We reduce this problem to the 2-weight minimum spanning tree problem. We use the fact that a graph G is bipartite i given any spanning forest F of G, each nontree edge forms an even cycle with F. Call these edges \even edges" and the remaining edges \odd". We also use the fact that if an edge e in F is replaced with an even edge then the set of even edges is preserved. Let C be the cut in F induced by removing e. If e is replaced with an odd edge then for each nontree edge e 0 which crosses C the parity of e 0 changes. We replace an edge by an odd replacement edge only if there does not exists an even replacement edge. Thus, the parity of an even edge never changed. F is stored as a dynamic tree. Our algorithm is: generate a spanning forest F of the initial graph G. All tree and even nontree edges have weight 0. Odd edges have weight 1. If no edges have weight 1, then the graph is bipartite. When an edge is inserted, determine if it is odd or even by using the dynamic tree data structure of F , and give it weight 1 or 0 accordingly. When an edge is deleted, if it is a tree edge, and if it is replaced with an odd edge (because there are no weight 0 replacements), remove the …
We give an efficient algorithm for maintaining a minimum spanning forest of a plane graph subject to on-line modifications. The modifications supported include changes in the edge weights and insertion and deletion of edges and vertices which are consistent with the given embedding. To implement the algorithms, we develop a data structure called an edge-ordered dynamic tree, which is a variant of the dynamic tree data structure of Sleator and Tarjan. Using this data structure, our algorithm runs in O(log n) time per operation and O(n) space. The algorithm can be used to maintain the connected components of a dynamic planar graph in O(logn) time per operation. We also show that any algorithm will need Ω(log n) amortized time per operation, given a set of machine operations that is fairly general.