Abstract
We present space-efficient algorithms for computing cut vertices in a given graph with n vertices and m edges in linear time using $$O(n+\min \{m,n\log \log n\})$$ bits. With the same time and using $$O(n+m)$$ bits, we can compute the biconnected components of a graph. We use this result to show an algorithm for the recognition of (maximal) outerplanar graphs in $$O(n\log \log n)$$ time using O(n) bits.
Highlights
Nowadays the use of small mobile devices like tablets and smartphones is ubiquitous. They will not be equipped with large memory and common actions like storing pictures may even decrease the available memory significantly. This triggers the interest in data structures and algorithms being space-efficient. (Time) Efficient algorithms are a classical subject in computer science
Edmonds et al [10] have shown in the so-called NNJAG model that only a slightly sublinear working-space bound is possible for an algorithm that solves the reachability problem when required to run in polynomial time
Afterwards, given an edge e = {u, v} with u being an ancestor of v, we can output the biconnected component B containing e by running a depth-first search (DFS) from v and traversing only tree edges such that we never explore new vertices from a vertex that was reached by a half marked or unmarked edge and such that we never use a half marked or unmarked edge moving from a parent to its child via such an edge
Summary
Nowadays the use of small mobile devices like tablets and smartphones is ubiquitous. Typically they will not be equipped with large memory and common actions like storing (many) pictures may even decrease the available memory significantly. Edmonds et al [10] have shown in the so-called NNJAG model that only a slightly sublinear working-space bound is possible for an algorithm that solves the reachability problem when required to run in polynomial time. We continue this work on space-efficient graph algorithms and consider the basic problems to compute the cut vertices and to decompose a given undirected graph into its biconnected components. An easy solution would be to copy the given graph in the working memory, but this requires Ω(n log n) bits for a graph with n vertices Another problem is that if the neighbors of a removed vertex are not adjacent, both algorithms above want to add a new edge connecting the neighbors. With each removed vertex v we have to remove the so-called chain of vertices of degree 2 that contains v and we have to choose the chains carefully such that we have only very few new edges at a time in our graph
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have