Abstract
Depth-first search (DFS) is a well-known graph traversal algorithm and can be performed in O ( n + m ) time for a graph with n vertices and m edges. We consider the dynamic DFS problem, that is, to maintain a DFS tree of an undirected graph G under the condition that edges and vertices are gradually inserted into or deleted from G. We present an algorithm for this problem, which takes worst-case O ( m n · polylog ( n ) ) time per update and requires only ( 3 m + o ( m ) ) log n bits of space. This algorithm reduces the space usage of dynamic DFS algorithm to only 1.5 times as much space as that of the adjacency list of the graph. We also show applications of our dynamic DFS algorithm to dynamic connectivity, biconnectivity, and 2-edge-connectivity problems under vertex insertions and deletions.
Highlights
Depth-first search (DFS) is a fundamental algorithm for searching graphs
For a graph with n vertices and m edges, DFS can be performed in O(n + m) time, and a DFS tree can be constructed in the same time
All the works described focus on the general DFS tree problem, not the ordered
Summary
Depth-first search (DFS) is a fundamental algorithm for searching graphs. As a result of performing. DFS, a rooted tree (or forest, for disconnected graphs) which spans all vertices is constructed. For a graph with n vertices and m edges, DFS can be performed in O(n + m) time, and a DFS tree (forest) can be constructed in the same time. The problem of computing a DFS tree can be classified into two settings. G, a DFS tree is generally not unique even if a root vertex is fixed. The ordered DFS tree problem is to compute the order in which the vertices are visited in this setting. Algorithms 2019, 12, 52 deletion updates, it is called fully dynamic. Dynamic graph algorithms focus on only edge insertions and deletions. For the fully dynamic setting we consider the vertex insertions and deletions
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have