# 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} }

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…

## 6,293 Citations

Finding All Spanning Trees of Directed and Undirected Graphs

- Computer ScienceSIAM J. Comput.
- 1978

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

- Computer ScienceActa Informatica
- 2004

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 Linear Time Algorithm for Finding Depth-First Spanning Trees on Trapezoid Graphs

- Mathematics, Computer ScienceInf. Process. Lett.
- 1997

A Divide-and-conquer Algorithm for Identifying Strongly Connected Components ?

- Computer Science
- 2003

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

- Computer SciencePDPTA
- 1997

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

- Computer Science, MathematicsIEEE Proceedings of the SOUTHEASTCON '91
- 1991

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

- Mathematics, Computer ScienceDiscret. Appl. Math.
- 1985

Recognizing depth-first-search trees in parallel

- Computer ScienceProceedings of 9th International Parallel Processing Symposium
- 1995

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

- Computer ScienceSIAM 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}$…

A Linear-Processor Algorithm for Depth-First Search in Planar Graphs

- Computer ScienceInf. Process. Lett.
- 1988

## References

SHOWING 1-10 OF 17 REFERENCES

Efficient algorithms for graph manipulation

- Computer Science
- 1971

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

- Computer ScienceIFIP Congress
- 1971

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

- MathematicsBIT
- 1970

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

- Computer Science, Mathematics
- 1971

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

- Computer ScienceCACM
- 1971

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

- MathematicsComplexity of Computer Computations
- 1972

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

- ChemistryJACM
- 1965

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

- MathematicsCACM
- 1968

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…

Isomorphism of planar graphs, IBM Symposium on Complexity of Computer Computations, Yorktown Heights

- N.Y
- 1972