eng
Schloss Dagstuhl – Leibniz-Zentrum für Informatik
Leibniz International Proceedings in Informatics
1868-8969
2018-06-04
16:1
16:12
10.4230/LIPIcs.SWAT.2018.16
article
An Improved Algorithm for Incremental DFS Tree in Undirected Graphs
Chen, Lijie
1
Duan, Ran
2
Wang, Ruosong
3
Zhang, Hanrui
4
Zhang, Tianyi
2
Massachusetts Institute of Technology
Tsinghua University
Carnegie Mellon University
Duke University
Depth first search (DFS) tree is one of the most well-known data structures for designing efficient graph algorithms. Given an undirected graph G=(V,E) with n vertices and m edges, the textbook algorithm takes O(n+m) time to construct a DFS tree. In this paper, we study the problem of maintaining a DFS tree when the graph is undergoing incremental updates. Formally, we show:
Given an arbitrary online sequence of edge or vertex insertions, there is an algorithm that reports a DFS tree in O(n) worst case time per operation, and requires O (min {m log n, n^2}) preprocessing time.
Our result improves the previous O(n log^3 n) worst case update time algorithm by Baswana et al. [Baswana et al., 2016] and the O(n log n) time by Nakamura and Sadakane [Nakamura and Sadakane, 2017], and matches the trivial Omega(n) lower bound when it is required to explicitly output a DFS tree.
Our result builds on the framework introduced in the breakthrough work by Baswana et al. [Baswana et al., 2016], together with a novel use of a tree-partition lemma by Duan and Zhang [Duan and Zhang, 2016], and the celebrated fractional cascading technique by Chazelle and Guibas [Chazelle and Guibas, 1986a; Chazelle and Guibas, 1986b].
https://drops.dagstuhl.de/storage/00lipics/lipics-vol101-swat2018/LIPIcs.SWAT.2018.16/LIPIcs.SWAT.2018.16.pdf
DFS tree
fractional cascading
fully dynamic algorithm