Consider a directed graph given in below, DFS of the below graph is 1 2 4 6 3 5 7 8. In below diagram if DFS is applied on this graph a tree is obtained which is connected using green edges.

**Tree Edge**: It is an edge which is present in the tree obtained after applying DFS on the graph. All the Green edges are tree edges.

**Forward Edge**: It is an edge (u, v) such that v is descendant but not part of the DFS tree. Edge from **1 to 8** is a forward edge.

**Back edge**: It is an edge (u, v) such that v is ancestor of edge u but not part of DFS tree. Edge from **6 to 2** is a back edge. Presence of back edge indicates a cycle in directed graph.

**Cross Edge**: It is a edge which connects two node such that they do not have any ancestor and a descendant relationship between them. Edge from node **5 to 4** is cross edge.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.

## Recommended Posts:

- Minimum number of edges between two vertices of a graph using DFS
- Ways to Remove Edges from a Complete Graph to make Odd Edges
- Remove all outgoing edges except edge with minimum weight
- Maximum number of edges that N-vertex graph can have such that graph is Triangle free | Mantel's Theorem
- DFS for a n-ary tree (acyclic graph) represented as adjacency list
- Maximum Possible Edge Disjoint Spanning Tree From a Complete Graph
- Maximum number of edges to be added to a tree so that it stays a Bipartite graph
- Graph implementation using STL for competitive programming | Set 1 (DFS of Unweighted and Undirected)
- Printing pre and post visited times in DFS of a graph
- Add and Remove Edge in Adjacency Matrix representation of a Graph
- Add and Remove Edge in Adjacency List representation of a Graph
- Check if a graph is strongly connected | Set 1 (Kosaraju using DFS)
- Transitive Closure of a Graph using DFS
- Check if the given permutation is a valid DFS of graph
- Print the lexicographically smallest DFS of the graph starting from 1
- Calculate number of nodes between two vertices in an acyclic Graph by DFS method
- Check if a given graph is Bipartite using DFS
- Depth First Search or DFS for a Graph
- Shortest path with exactly k edges in a directed and weighted graph
- Program to find the diameter, cycles and edges of a Wheel Graph

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.