Depth First Search in C++

Depth-first search (DFS) is an algorithm for traversing or searching
tree or graph data structures. One starts at the root (selecting some
arbitrary node as the root in the case of a graph) and explores as far
as possible along each branch before backtracking.
Files

Added files from project done in Eclipse CDT C++
Revert "Files"

This reverts commit 4f10a0b9bc5f2076d5741e29ad87548c51f4c3fe.
Related Files

1. Perform a depth-ﬁrst search of the graph. Your program should ask for
the starting node.
2. Compute the discovery and ﬁnish times of the nodes.
3. Classify the edges (tree, back, ...) as early as possible instead of
doing it after the DFS is fully done.
4. Check if the graph has cycles. In the case of directed graphs, ﬁnd a
topological sort if one exists (i.e.,
if the graph is acyclic); in case the graph is acyclic, the program
should compute a topological number
for the nodes and should print the nodes in a topologically sorted
order.
5. If a directed graph has cycles, the program should ﬁnd the strongly
connected components and print
the strongly connected components.
6. In the case of undirected graphs, check if the graph is connected,
and print each connected component.