Depth-First Search and Linear Graph Algorithms

@article{Tarjan1972DepthFirstSA,
  title={Depth-First Search and Linear Graph Algorithms},
  author={Robert E. Tarjan},
  journal={SIAM J. Comput.},
  year={1972},
  volume={1},
  pages={146-160}
}
  • R. Tarjan
  • Published 1 June 1972
  • Mathematics
  • SIAM J. Comput.
The value of depth-first search or “backtracking” as a technique for solving problems is illustrated by two examples. An improved version of an algorithm for finding the strongly connected components of a directed graph and at algorithm for finding the biconnected components of an undirect graph are presented. The space and time requirements of both algorithms are bounded by $k_1 V + k_2 E + k_3 $ for some constants $k_1 ,k_2 $, and $k_3 $, where V is the number of vertices and E is the number… 

Figures from this paper

Finding All Spanning Trees of Directed and Undirected Graphs
An algorithm for finding all spanning trees (arborescences) of a directed graph is presented. It uses backtracking and a method for detecting bridges based on depth-first search. The time required is
Edge-disjoint spanning trees and depth-first search
  • R. Tarjan
  • Computer Science
    Acta Informatica
  • 2004
TLDR
An algorithm for finding two edge-disjoint spanning trees rooted at a fixed vertex of a directed graph using depthfirst search and an efficient method for computing disjoint set unions is presented.
A Divide-and-conquer Algorithm for Identifying Strongly Connected Components ?
TLDR
This work describes two divide--and--conquer algorithms for this problem that have significantly greater potential for parallelization.
An Efficient Method for Constructing a Distributed Depth-First Search Tree
TLDR
This new algorithm improves over the best of previous algorithms by using a stack-type structure which enables better dynamic backtracking and is much better in practice, manifested by significantly smaller values of r.
NC algorithms for finding depth-first-search trees in interval graphs and circular-arc graphs
TLDR
These algorithms take O(log n) time using kappa n processors on the EREW model, where kappa is the number of cliques in a graph of n nodes.
Solving NP-hard problems in 'almost trees': Vertex cover
Recognizing depth-first-search trees in parallel
TLDR
An O(m/p+log m)-time parallel algorithm using p processors on the EREW PRAM model to determine whether T is a depth-first-search tree of G, which is optimal in time complexity and speed-up.
Planar Strong Connectivity Helps in Parallel Depth-First Search
  • M. Kao
  • Computer Science
    SIAM J. Comput.
  • 1995
This paper proves that for a strongly connected planar directed graph of size $n$, a depth-first search tree rooted at a specified vertex can be computed in $O(\log^{5}n)$ time with $n/\log{n}$
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 17 REFERENCES
Efficient algorithms for graph manipulation
Efficient algorithms are presented for partitioning a graph into connected components, biconnected components and simple paths. The algorithm for partitioning of a graph into simple paths is
Planarity Testing in V log V Steps: Extended Abstract
TLDR
An efficient algorithm is presented for determining whether or not a given graph is planar, using extensive list-processing features to speed computation.
A transitive closure algorithm
TLDR
An algorithm is given for computing the transitive closure of a directed graph in a time no greater than a1N1n+a2n2 for largen and the method uses aboutn2+n bits and 5n words of storage.
An n log n algorithm for isomorphism of planar triply connected graphs
TLDR
An algorithm for determining whether two planar triply connected graphs are isomorphic is developed and the asymptotic growth rate of the algorithm grows as n log n where n is the number of vertices in the graph.
An algorithm for the blocks and cutnodes of a graph
TLDR
An efficient method is presented for finding blocks and cutnodes of an arbitrary undirected graph using a packed adjacency matrix generated by an extension of the web grammar approach.
Isomorphism of Planar Graphs
TLDR
An algorithm is presented for determining whether or not two planar graphs are isomorphic, if V is the number of vertices in each graph.
Backtrack Programming
TLDR
A widely used method of efftcient search is examined in detail and its scope and methods are formulated in their full generality.
Scientific Applications: An algorithm for identifying the ergodic subchains and transient states of a stochastic matrix
An algorithm for identifying the ergodic subchains and transient states of a stochastic matrix is presented. Applications in Markov renewal programming and in the construction of variable length
An efficient planarity algorithm
Isomorphism of planar graphs, IBM Symposium on Complexity of Computer Computations, Yorktown Heights
  • N.Y
  • 1972
...
1
2
...