We obtain a new fully dynamic algorithm for maintaining the transitive closure of a directed graph. Our algorithm maintains the transitive closure matrix in a total running time of O(mn+(ins+ del) · n2), where ins (del) is the number of insert (delete) operations performed. Here n is the number of vertices in the graph and m is the initial number of edges in the graph. Obviously, reachability queries can be answered in constant time. The algorithm uses only O(n2) time which is essentially optimal for maintaining the transitive closure matrix. Our algorithm can also support path queries. If v is reachable from u, the algorithm can produce a path from u to v in time proportional to the length of the path. The best previously known algorithm for the problem is due to Demetrescu and Italiano . Their algorithm has a total running time of O(n3 + (ins + del) · n2). The query time is also constant. In addition, we also present a simple algorithm for directed acyclic graphs (DAGs) with a total running time of O(mn + ins · n2 + del). Our algorithms are obtained by combining some new ideas with techniques of Italiano [1986, 1988], King , King and Thorup  and Frigioni et al. . We also note that our algorithms are extremely simple and can be easily implemented.
- Directed graph
- Dynamic graph algorithms