  We present algorithms for distributed verification and silent-stabilization
of a DFS(Depth First Search) spanning tree of a connected network. Computing
and maintaining such a DFS tree is an important task, e.g., for constructing
efficient routing schemes. Our algorithm improves upon previous work in various
ways. Comparable previous work has space and time complexities of $O(n\log
\Delta)$ bits per node and $O(nD)$ respectively, where $\Delta$ is the highest
degree of a node, $n$ is the number of nodes and $D$ is the diameter of the
network. In contrast, our algorithm has a space complexity of $O(\log n)$ bits
per node, which is optimal for silent-stabilizing spanning trees and runs in
$O(n)$ time. In addition, our solution is modular since it utilizes the
distributed verification algorithm as an independent subtask of the overall
solution. It is possible to use the verification algorithm as a stand alone
task or as a subtask in another algorithm. To demonstrate the simplicity of
constructing efficient DFS algorithms using the modular approach, We also
present a (non-sielnt) self-stabilizing DFS token circulation algorithm for
general networks based on our silent-stabilizing DFS tree. The complexities of
this token circulation algorithm are comparable to the known ones.
